Common Language Infrastructure
Common Language Infrastructure (z ang. wspólna infrastruktura językowa, 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
[edytuj | edytuj kod]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ą
[edytuj | edytuj kod]Maszyna CLR jest z założenia konkurentem dla Java Virtual Machine (JVM), a CLI – dla Java Software Development Kit (SDK)[potrzebny przypis].
Linki zewnętrzne
[edytuj | edytuj kod]- Standard ECMA-335 dotyczący CLI
- Samouczek zawierający MSIL autorstwa Aleksieja Nudelmana. csharpcomputing.com. [zarchiwizowane z tego adresu (2007-10-22)].