Common Language Infrastructure

Common Language Infrastructure (z ang. architektura wspólnego języka, w skrócie CLI) to część platformy Microsoft .NET Framework, wykorzystywana jako środowisko uruchomieniowe oprogramowania stworzonego w różnych językach. Przed opracowaniem CLI każdy język wymagał własnego środowiska: Visual BasicVBVM, Visual C++ (aż do Visual C++ .NET) – MSVCRT.

Common Language Infrastructure

Specyfikacja CLI opisuje następujące cztery aspekty:

  • Wspólny zestaw typów danych (Common Type System) – zbiór typów danych, które są obsługiwane przez wszystkie kompatybilne języki programowania.
  • Metadane – informacje o strukturze definiowanych klas, interfejsów i innych typów, pozwalające na ich wykorzystanie w różnych językach i narzędziach.
  • Wspólna specyfikacja języków (Common Language Specification) – określa zbiór reguł, do których wszystkie języki zgodne z CLI muszą się stosować, aby były kompatybilne z pozostałymi językami.
  • Wirtualny system wykonawczy (Virtual Execution System) – wczytuje i wykonuje programy kompatybilne z CLI, używa metadanych w celu połączenia poszczególnych fragmentów kodu w czasie wykonywania.

Każdy kod źródłowy napisany w języku kompatybilnym z tą infrastrukturą jest kompilowany do języka pośredniego CIL, niezależnego od platformy sprzętowej. W czasie wykonywania kodu VES tłumaczy język pośredni na kod dopasowany do danej platformy.

CLR – maszyna wirtualna CLI

CLI wykorzystuje bibliotekę klas i maszynę wirtualną Common Language Runtime (CLR) firmy Microsoft. W trakcie przygotowania jest wiele kompilatorów, które będą generować kod dla CLR zapisany w postaci Common Intermediate Language (CIL) (inna nazwa: Microsoft Intermediate Language, MSIL). Kod CIL jest niezależny od zestawu instrukcji procesora, co umożliwia jego translację na kod natywny. W związku z tym CIL może być nazwany asemblerem wysokiego poziomu.

Rywalizacja z Javą

Maszyna CLR jest z założenia konkurentem dla Java Virtual Machine (JVM), a CLI – dla Java Software Development Kit (SDK).

Linki zewnętrzne

Media użyte na tej stronie

Overview of the Common Language Infrastructure.svg
Visual overview of the Common CLR Language Infrastructure, and how the components relate to each other. Converted to SVG from PNG version, originally by Foofy from English Wikipedia.