공통 언어 인프라스트럭처
Common Language InfrastructureISO/IEC 23271:2012(E) | |
줄임말 | CLI |
---|---|
상황 | 출판된 |
시작한 해 | 전 |
초판 | (2001년 및 전( (ISO/IEC) |
최신 버전 | 제6판 2012년 6월, 전( |
조직 | 개발자:Microsoft, Hewlett-Packard, Intel 등 표준화 대상자:Ecma, ISO/IEC |
위원회. | ISO/IEC JTC 1/SC 22 |
도메인 | 공통 언어(크로스 플랫폼) |
면허증. | 랜드 |
웹 사이트 | ECMA-335, ISO/IEC 23271 |
그 CLI(CLI)은 개방되어 규격과 기술적 원래 표준을 개발함으로써 마이크로 소프트와 표준화에 의해/IEC(/IEC23271)과 Ecma인터내셔널(ECMA은 335명)[1][2]은 실행 코드와 런타임 환경으로 만든 여러 고 수준의 언어 사용할에 다른 컴퓨터 플랫폼 w.ithout특정 아키텍처에 맞게 다시 작성됩니다.이는 플랫폼에 의존하지 않는다는 것을 의미합니다..NET Framework , .NET 및 Mono는 CLI 구현입니다.메타데이터 형식은 Windows [3][4]런타임에 의해 표시되는 API 정의를 지정하는 데도 사용됩니다.
개요
그 중에서도 CLI 사양에는 다음 4가지 측면이 기재되어 있습니다.
- Common Type System(CTS)
- 모든 CTS 준거 프로그래밍 언어로 공유되는 데이터 유형 및 조작 세트.
- 메타데이터
- 프로그램 구조에 대한 정보는 언어에 구애받지 않기 때문에 언어와 도구 간에 참조할 수 있으므로 개발자가 사용하지 않는 언어로 작성된 코드를 쉽게 사용할 수 있습니다.
- 공통 언어 사양(CLS)
- CLI는 대상 언어가 다른 CLS 준거 언어와 상호 운용되어야 하므로 대상 언어인 기본 규칙 세트에 준거해야 합니다.CLS 규칙은 Common Type System의 서브셋입니다.
- 가상 실행 시스템(VES)
- VES는 CLI 호환 프로그램을 로드하고 실행합니다.메타데이터를 사용하여 런타임에 개별적으로 생성된 코드 조각을 결합합니다.
호환되는 모든 언어는 플랫폼하드웨어에서 추출된 중간 언어인 Common Intermediate Language(CIL; 공통 중간 언어)로 컴파일됩니다.코드가 실행되면 플랫폼 고유의 VES는 CIL을 특정 하드웨어 및 운영체제에 따라 기계어로 컴파일합니다.
표준화 및 라이선스
2000년 8월, Microsoft, Hewlett-Packard, Intel 등은 CLI 표준화에 임했습니다.2001년 12월까지 Ecma에 의해 비준되었으며 2003년 4월에 이어 ISO/IEC 표준화가 이루어졌다.
Microsoft와 그 파트너는 CLI 특허를 보유하고 있습니다.Ecma 및 ISO/IEC는 구현에 필수적인 모든 특허를 "합리적이고 비차별적(RAND)" 조건에 따라 사용할 수 있도록 요구합니다.LAND 라이선스의 경우 로열티 지불이 필요한 것이 일반적이며, 이는 Mono에 대한 우려의 원인이 될 수 있습니다.2013년 1월 현재, Microsoft와 그 파트너 모두 LAND 조건을 따르는 CLI 구현에 필수적인 특허를 특정하지 않았습니다.
2009년 [5]7월부터 Microsoft는 C#과 CLI를 Microsoft Community Promise가 [6]적용되는 사양 목록에 추가했습니다.이것에 의해, 누구나 Microsoft로부터의 특허 소송의 염려 없이, 표준의 특정 에디션을 안전하게 실장할 수 있습니다.CLI 표준을 구현하려면 표준에서 지원되는 정의된 프로파일 중 하나(최소한은 커널 프로파일)에 준거해야 합니다.커널 프로파일은 실제로 default의 잘 알려진 코어 라이브러리에 비해 지원하는 매우 작은 유형의 집합입니다.NET 의 인스톨단, CLI의 conformance 구에서는 새로운 메서드와 유형을 클래스에 추가하고 새로운 네임스페이스에서 파생함으로써 지원되는 프로파일을 확장할 수 있습니다.단, 인터페이스에 새로운 멤버를 추가할 수는 없습니다.즉, 준거한 프로파일 구현에 의해 해당 프로파일 상에서 실행되는 프로그램의 동작이 변경되지 않는 한 CLI 기능을 사용하거나 확장할 수 있습니다.또, 그 실장 전용으로 기술된 프로그램으로부터의 불특정 동작이 허가됩니다.
2012년에 Ecma와 ISO/IEC는 Community [6]Promise에서 다루지 않는 CLI [1][2]표준의 새로운 에디션을 발표했습니다.
실장
- .NET Framework는 마이크로소프트의 CLI의 최초 상용 구현입니다.Windows만 지원합니다.에 의해 대체되었습니다.2020년 11월 NET.
- .NET은 의 프리 오픈소스 멀티플랫폼 후계자입니다NET Framework, MIT 라이선스로 출시
- .NET Compact Framework는 마이크로소프트가 휴대용 장치와 Xbox 360용 CLI를 상업적으로 구현한 것입니다.
- .NET Micro Framework는 리소스가 제한된 장치를 위한 CLI의 오픈 소스 구현입니다.
- Mono는 주로 모바일 및 게임 개발에 사용되는 CLI 및 그에 부수되는 기술의 대체 오픈 소스 구현입니다.
「 」를 참조해 주세요.
메모들
- ^ a b "ISO/IEC 23271:2012 - Information technology -- Common Language Infrastructure (CLI)".
- ^ a b "Standard ECMA-335 - 6th edition (June 2012)".
- ^ "Introduction to Advanced Windows Store App Development using HTML5 and JavaScript Microsoft Press Store".
- ^ "WinRT demystified - Miguel de Icaza".
- ^ "The Ecma C# and CLI Standards - Port 25: The Open Source Community at Microsoft". July 6, 2009. Archived from the original on July 9, 2009. Retrieved September 26, 2009.
- ^ a b "Covered Specifications Microsoft Open Specifications". Microsoft.
레퍼런스
- "Standard ECMA-335, Common Language Infrastructure (CLI)". Ecma International. Retrieved August 31, 2005.
- "ISO/IEC 23271, Common Language Infrastructure". ISO/IEC. Retrieved September 27, 2006.
- "Ecma C# and Common Language Infrastructure Standards". Microsoft Corporation. Retrieved October 13, 2009.