공통 언어 인프라스트럭처

Common Language Infrastructure
공통 언어 인프라스트럭처
ISO/IEC 23271:2012(E)
줄임말CLI
상황출판된
시작한 해2000년, 22년(2000년)
초판2001년, 21년 (2001년)2003년, 19년 전(2003년) (ISO/IEC)
최신 버전제6판
2012년 6월, 10년 전(2012-06)
조직 개발자: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 , .NETMono는 CLI 구현입니다.메타데이터 형식은 Windows [3][4]런타임에 의해 표시되는 API 정의를 지정하는 데도 사용됩니다.

개요

공통 언어 인프라스트럭처(CLI)의 개요

그 중에서도 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 및 그에 부수되는 기술의 대체 오픈 소스 구현입니다.

「 」를 참조해 주세요.

메모들

  1. ^ a b "ISO/IEC 23271:2012 - Information technology -- Common Language Infrastructure (CLI)".
  2. ^ a b "Standard ECMA-335 - 6th edition (June 2012)".
  3. ^ "Introduction to Advanced Windows Store App Development using HTML5 and JavaScript Microsoft Press Store".
  4. ^ "WinRT demystified - Miguel de Icaza".
  5. ^ "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.
  6. ^ a b "Covered Specifications Microsoft Open Specifications". Microsoft.

레퍼런스

외부 링크