CLI 언어 목록

CLI 언어는 공통 언어 기반(CLI) 사양을 준수하는 라이브러리와 프로그램을 제작하는 데 사용되는 컴퓨터 프로그래밍 언어다. 몇몇 주목할 만한 예외를 제외하고, 대부분의 CLI 언어는 닷넷 프레임워크, 닷넷(.NET) 코어, 모노에 의해 구현된 공통 언어 런타임에서 실행될 수 있는 중간 언어인 공통 중간 언어(CIL)로 완전히 컴파일된다. 이러한 언어 중 일부는 동적 언어 런타임(DLR)을 필요로 하기도 한다.

프로그램이 실행될 때, CIL 코드는 프로그램이 구동되는 아키텍처에 적합한 기계어로 실시간(Just-in-time) 컴파일되어 캐시된다. 이 단계는 마이크로소프트의 ngen.exe나 모노의 "-aot" 옵션과 같은 "사전(ahead-of-time)" 컴파일러를 사용하여 이전 단계에서 캐싱함으로써 수동으로 생략할 수 있다.

 주요 CLI 언어 
 현역 언어 
에이다 (Ada for .Net)
 에이다는 코드 안전성, 유지보수성, 정확성에 강하게 집중하는 다중 패러다임 언어다. 
Boo
 파이썬에서 영감을 받은 정적 타이핑 CLI 언어다.
C#
 가장 널리 사용되는 CLI 언어로, 자바와 매우 유사하며 오브젝트 파스칼 (델파이) 및 C++와도 어느 정도 유사성을 띤다. 닷넷 프레임워크, 닷넷 코어, 모노에 의해 구현체가 제공된다.
C++/CLI
 공통 언어 런타임(CLR) 객체를 사용하기 위한 확장을 포함한 C++ 버전이다. 닷넷 프레임워크를 완벽하게 지원하며, 닷넷 코어에 대해서는 라이브러리 전용 지원을 제공한다. C++ 객체에 대해 네이티브 코드를 생성하는 혼합 모드 코드를 생성한다. 컴파일러는 마이크로소프트에서 제공한다.
ClojureCLR
 클로저 프로젝트의 일부로, 클로저를 CLI로 포팅한 것이다.
컴포넌트 파스칼
 CLI를 준수하는 오베론 파생 언어다. 파스칼과 Modula-2의 유산을 계승한 강력한 정적 타이핑 언어지만, 강력한 객체 지향 확장을 갖추고 있다.
에펠
 소프트웨어 품질에 집중하는 순수 객체 지향 언어로, 통합된 계약에 의한 설계와 다중 상속을 포함한다. CLI를 준수한다.
F#
 함수형 프로그래밍과 명령형 객체 지향 프로그래밍 규율을 지원하는 다중 패러다임 CLI 언어다. ML의 변형이며 OCaml과 크게 호환된다. 닷넷 프레임워크, 닷넷 코어, 모노에 의해 구현체가 제공된다.
F*
 F#에 기반한 의존 타이핑(dependently typed) 언어다.
Go
 RemObjects Gold 컴파일러 및 다중 플랫폼 타겟팅을 통해 지원된다.
IronPython
 동적 언어 런타임(DLR) 위에서 구축된 파이썬의 오픈 소스 CLI 구현체다.
IronScheme
 DLR 위에서 구축된 R6RS 준수 스킴 구현체다.
자바
 RemObjects Iodine 컴파일러 및 다중 플랫폼 타겟팅을 통해 지원된다.
옥시즌
 오브젝트 파스칼 기반의 CLI 언어다.
PascalABC.NET
 닷넷 프레임워크 상에서 구현된 오브젝트 파스칼 기반 언어다.
PeachPie
 닷넷 및 닷넷 코어용 PHP 컴파일러다. Phalanger의 후속작이다.
파워빌더
 버전 11.1부터 CLI를 타겟팅할 수 있다.
파워셸
 객체 지향 명령줄 셸이다. 파워셸은 임의의 CLI 언어로 작성된 닷넷 어셈블리를 동적으로 로드할 수 있다. 파워셸 자체는 고유한 스크립팅 구문을 사용하며, 다른 C 기반 언어와 유사하게 중괄호를 사용한다.
RemObjects Mercury
 비주얼 베이직 닷넷 기반의 CLI 언어다.
러스트
 러스트를 위한 실험적인 닷넷 백엔드 연구 프로젝트가 진행 중이다.
Silverfrost FTN95
 포트란 95의 구현체다.
스몰 베이직
 프로그래밍 교육을 위해 마이크로소프트에서 만든 BASIC 파생 언어다. 지원되는 릴리스는 닷넷 프레임워크 버전 3.5 및 4.5를 타겟팅한다.
스위프트
 RemObjects Silver 컴파일러 및 다중 플랫폼 타겟팅을 통해 지원된다.
Synergy DBL .NET
 Synergex에서 제작한 DBL 및 DIBOL의 객체 지향 CLI 준수 구현체다.
팀 디벨로퍼
 팀 디벨로퍼(Team Developer) 6.0부터 SQLWindows 애플리케이션 언어(SAL)를 지원한다.
비주얼 베이직.NET
 클래식 비주얼 베이직을 재설계한 방언이다. 닷넷 프레임워크, 닷넷 코어, 모노에 의해 구현체가 제공된다.
비주얼 코볼
 마이크로 포커스에서 제작한, 닷넷 프레임워크 및 JVM으로 포팅된 코볼의 향상된 버전이다.
XSharp
 X#는 xBase 언어에 기반한 마이크로소프트 닷넷용 오픈 소스 개발 언어다. Core, Visual Objects, Vulcan.NET, xBase++, Harbour, Foxpro 등 다양한 변체(flavours)를 제공한다.

 중단되거나 더 이상 사용되지 않는 언어 
A#
 에이다의 CLI 구현체다.
Axum
 행위자 모델 병행 프로그래밍 언어다.
Cobra
 정적 및 동적 타이핑, 계약에 의한 설계 및 내장된 유닛 테스트 기능을 갖춘 CLI 언어다.
Fantom
 닷넷(더 이상 활발히 개발되지 않음) 및 JVM용으로 컴파일되는 언어다. 
GrGen.NET
 그래프 다시 쓰기를 위한 CLI 언어다.
IronRuby
 동적 언어 런타임(DLR) 위에서 구축된 루비의 오픈 소스 CLI 구현체다.
J#
 자바의 CLI 준수 구현체다. 컴파일러는 마이크로소프트에서 제공한다. J#은 생산이 중단되었다. 마지막 버전은 비주얼 스튜디오 2005와 함께 제공되었으며, 2015년까지 지원되었다.
JScript .NET
 J스크립트와 호환되는 ECMA스크립트 버전 3의 CLI 구현체다. 정적 타이핑을 위한 확장을 포함한다. 매니지드 J스크립트를 위해 사용이 중단(deprecated)되었다.
C++용 관리 확장
 공통 언어 런타임(CLR)을 타겟팅하는 C++ 버전이다. C++/CLI를 위해 사용이 중단되었다.
매니지드 J스크립트
 동적 언어 런타임(DLR) 위에서 구축된 J스크립트의 CLI 구현체다. ECMA스크립트 버전 3을 준수한다.
Nemerle
 C#, OCaml, Lisp와 유사한 다중 패러다임 언어다.
Niecza
 펄 6의 CLI 구현체다.
Phalanger
 ASP.NET용 확장을 포함한 PHP 구현체다. PeachPie의 전신이다.
유니티스크립트
 유니티 게임 엔진 전용의 자바스크립트와 유사한 언어다. C#을 위해 사용이 중단되었다.

 관련 항목 
IKVM
 CLI 구현체 위에서 자바 및 기타 JVM 언어(예: Groovy, 스칼라 등)를 실행하는 데 사용할 수 있는 자바 가상 머신이다.

 같이 보기 
 자바 가상 머신 지원 언어
 오픈 소스 프로그래밍 언어 목록
 닷넷 프레임워크: 오리지널 구현체로, 곧 중단될 예정이다.
 공통 언어 기반 (CLI): 닷넷 프레임워크의 실행 환경(가상 머신 구성 요소)에 대한 개방형 사양.
 공통 중간 언어 (CIL): CLI 구현체를 사용하여 실행할 수 있는 중간 언어.
 공통 언어 런타임: 마이크로소프트의 닷넷 프레임워크 구현체 중 가상 머신 구성 요소.
 닷넷 표준 라이브러리
 기본 클래스 라이브러리 (BCL)
 모노: 유니티와 자마린을 포함한 많은 곳에서 사용되는 닷넷 프레임워크의 오픈 소스 구현체.
 닷넷 코어: 닷넷 프레임워크의 오픈 소스 크로스 플랫폼 후속작.

 각주 

분류:프로그래밍 언어 목록
분류:공통 언어 기반