Co to jest CLR?
CLR (Common Language Runtime), czyli wspólne środowisko uruchomieniowe, to podstawowy element platformy .NET odpowiedzialny za uruchamianie aplikacji napisanych m.in. w C#, VB.NET czy F#.
W pytaniach egzaminacyjnych CLR często występuje jako warstwa znajdująca się pod bibliotekami klas .NET. To właśnie ono pozwala uruchamiać programy napisane w różnych językach zgodnych z platformą .NET.
Najważniejsze zadania CLR
CLR odpowiada za:
- uruchamianie programów .NET,
- przekształcanie kodu pośredniego IL/MSIL/CIL na kod maszynowy procesora,
- zarządzanie pamięcią,
- obsługę wyjątków,
- kontrolę typów i bezpieczeństwa,
- współpracę z bibliotekami klas .NET.
Kod pośredni i kompilacja JIT
Program napisany np. w C# nie jest od razu kompilowany bezpośrednio do kodu maszynowego konkretnego procesora. Najpierw powstaje kod pośredni IL. Dopiero podczas uruchamiania aplikacji CLR używa mechanizmu JIT (Just-In-Time), który tłumaczy kod pośredni na kod maszynowy.
Schemat działania:
Kod C# → kompilator → kod pośredni IL → CLR/JIT → kod maszynowy
Jak rozpoznać CLR na egzaminie?
Jeśli w pytaniu pojawia się opis:
- „wspólne środowisko uruchomieniowe”,
- „uruchamianie aplikacji .NET”,
- „zamiana kodu pośredniego na kod maszynowy”,
- „runtime platformy .NET”,
to chodzi o CLR.
Czym CLR nie jest?
CLR nie jest biblioteką klas ani środowiskiem typu Visual Studio. Nie służy bezpośrednio do pisania kodu, lecz do jego wykonywania. Biblioteki klas dostarczają gotowe klasy i funkcje, a CLR odpowiada za uruchomienie programu.