Co to jest infrastruktura wspólnego języka?
Wspólna infrastruktura językowa (CLI) to zestaw międzynarodowych standardów technicznych promujących interoperacyjność języka programowania komputerowego. Interfejs CLI umożliwia także wielu językach wysokiego poziomu tworzenie aplikacji niezależnych od platform i architektur. Istnieje ponad 30 języków programowania zgrupowanych w tym celu i korzystających z czterech działów specyfikacji programowania wspólnego języka w celu zapewnienia zgodności z CLI.
Wykorzystanie tak zwanego wspólnego systemu typów (CTS), użycie zestawu typów danych i operacji oraz informacji o metadanych w strukturach programowania umożliwia pisanie kodu w wielu językach. CLI kompiluje języki we wspólny język pośredni (CIL), a z CIL przekazuje aspekty aplikacji do języka maszyny asemblera, który dotyczy sprzętu. Ponadto istnieją wspólne specyfikacje językowe (CLS), które są podstawowymi regułami ustawionymi do użytku przez dowolny język poszukujący współdziałania, oraz wirtualny system wykonawczy (VES) do ładowania, wykonywania i generowania kodów uruchamiania dla wszystkich programów zgodnych z CLI .
Większość języków zgodnych z CLI kompiluje się bezpośrednio do CIL przy użyciu środowiska uruchomieniowego języka wspólnego (CLR). Po skompilowaniu i zbuforowaniu w pamięci podręcznej kompilator just-in-time przejmuje kod maszynowy z istniejącej architektury. Konstrukcję kodu maszynowego do montażu można również zbudować przed CLR za pomocą kompilatora z wyprzedzeniem.
Aby języki zgodne z CLI mogły korzystać ze specyfiki obiektu, infrastruktura języka wspólnego określa, że obiekty muszą tylko ujawniać funkcje, które są wspólne z innymi językami zgodnymi z CLI podczas wywoływania. Składniki kodu opracowane tak, aby wykorzystywać tylko typy danych akceptowane w CTS, są zgodne z CLI i dostępne dla wszystkich innych języków zgodnych z CLI. Ponadto wszelkie konstrukcje języka, których nie można szybko zweryfikować ze względu na bezpieczeństwo typu kodu, są wykluczone z CLS, więc można powiedzieć, że tylko weryfikowalne kody są zgodne z CLS.
Niektóre funkcje programowania są wspólne zarówno dla kompilatorów, jak i programistów, a inne są dostępne tylko dla kompilatorów. Lista jest długa i pełna przydatnych funkcji. Funkcja dostępna tylko dla kompilatorów to: słowa kluczowe, które dostarczają identyfikatory odwołujące się i które mogą zastąpić metody wirtualne nazwami, które są słowami kluczowymi. Funkcja dostępna zarówno dla kompilatorów, jak i programistów obejmuje: funkcje modyfikujące, które mówią, że właściwość, a także jej asesory muszą być „statyczne”, wszystkie muszą być „wirtualne”, wszystkie muszą być „instancją”.
Programy wdrożeniowe są przeznaczone dla komputerów stacjonarnych, serwerów, urządzeń mobilnych i konsol do gier. Programy poprawiające widzenie komputerowe i zestawy narzędzi maszyn wirtualnych niskiego poziomu są również opracowywane z języków zgodnych z infrastrukturą języka wspólnego. Środowiska wykonawcze infrastruktury języka wspólnego efektywnie przydzielają zasoby systemowe i wywołują urządzenia peryferyjne, chociaż są one niezależne od platformy.