공통 언어 기반

공통 언어 기반 또는 공통 언어 인프라(, CLI)는 마이크로소프트 닷넷 프레임워크, 모노, 포터블 닷넷과 같은 수많은 런타임의 중심부를 형성하는 실행 코드와 런타임 환경을 설명하기 위해 마이크로소프트사가 개발한 오픈 규격이다. 이 규격은 여러 개의 높은 수준의 언어가 다른 컴퓨터 플랫폼에서 특정한 구조를 위해 별도의 수정 과정 없이 사용될 수 있게 만들어 준다. 따라서 윈도우,맥,리눅스,안드로이드등 다양한 플랫폼에서 오픈소스로 구현된다.

CLI은 단지 규격이지, 추가되는 "기능"이 아니다. 또, 사람들은 CLI 규격의 범위 밖의 부분까지 포함하는 공통 언어 런타임(CLR)과 자주 혼동하는 경우도 있다.

다른 것들 가운데 CLI 규격은 다음의 네 가지 부분을 서술하고 있다:
 공통 형 체계 (CTS)
 메타데이터
 공통 언어 규격 (CLS)
 가상 실행 시스템 (VES)
호환되는 모든 언어는 플랫폼 하드웨어에서 떨어져 나온 중간 언어인 공통 중간 언어(CIL)와 컴파일이 가능하다. 코드가 실행될 때, 플랫폼에 의지하는 VES는 공통 중간 언어를 호환 하드웨어에 맞추어 기계어로 컴파일하게 된다.

 규격 및 라이선스 
2000년 8월에 마이크로소프트, 휴렛 패커드, 인텔 등의 회사는 공통 언어 기반의 표준화를 착수하였다. 2001년 12월에 ECMA에 비준되었고, 이에 이어 2003년 4월에 ISO 표준으로 자리잡았다.

 동적 언어 지원 

공통 언어 기반은 현재 동적 형 언어를 자체적으로 지원하지 않고 있다. 그 까닭은 기존의 공통 중간 언어가 정적 형을 사용하고 있기 때문이다.Pobar, Joel (2007-01-03). CLR Dynamic languages under the hood. 2008년 1월 26일 확인. 동적 언어 런타임은 CLR을 지원해 준다.

 기능 
 마이크로소프트 닷넷 프레임워크는 데스크톱 시스템을 위해 마이크로소프트의 CLI 상용 기능을 포함하고 있다. 그뿐 아니라 수많은 리소스, 라이브러리, 도구도 포함하고 있다.
 공유 소스 공통 언어 기반(SSCLI)은 공유 소스(Shared source) 라이선스 프로그램 하에서 마이크로소프트가 제공하는 CLI 참조 기능이다.
 닷넷 콤팩트 프레임워크는 휴대용 장치와 엑스박스 360을 위한 마이크로소프트의 CLI 상용 기능이다.
 마이크로소프트 실버라이트는 마이크로소프트 윈도우와 OS X을 위한 "웹 브라우저에 사용되는 기능"이다.
 모노 개발 플랫폼은 CLI 관련 기술 부문에서 잘 알려진 오픈 소스 기능이다. 노벨이 후원하고 있다.
 포터블 닷넷은 닷GNU 프로젝트의 일부이며 또다른 오픈 소스 기능이다.

 같이 보기 
 기본 클래스 라이브러리

 참고 문헌 
 표준 ECMA-335, 공통 언어 기반 (CLI) ECMA 인터내셔널. 2005년 8월 31일 확인.
 ISO/IEC 23271, Common Language Infrastructure ISO. 2006년 11월 27일 확인.

 각주 

분류:닷넷 프레임워크
분류:Ecma 표준