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 Basic – VBVM, Visual C++ (aż do Visual C++ .NET) – MSVCRT.
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
- Standard ECMA-335 dotyczący CLI
- Samouczek zawierający MSIL autorstwa Aleksieja Nudelmana. csharpcomputing.com. [zarchiwizowane z tego adresu (2007-10-22)].
Media użyte na tej stronie
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.