Jak nazywa się element oznaczony znakiem zapytania w strukturze platformy .NET, który umożliwia tworzenie własnych aplikacji z użyciem frameworków i zamianę kompilowanego kodu pośredniego na kod maszynowy procesora zainstalowanego w komputerze?

Pytanie z egzaminu CKE, czerwiec 2014 (arkusz E.14-X-14.05).
Kod pośredni zamienia na kod maszynowy konkretnego procesora wspólne środowisko uruchomieniowe CLR (Common Language Runtime). Kompilator C# czy Visual Basic nie tworzy instrukcji procesora, tylko kod pośredni IL zapisany w pliku .exe lub .dll. Dopiero przy uruchomieniu CLR kompiluje go „w locie” (JIT) na instrukcje procesora, na którym program akurat działa.
CLR robi też więcej: zarządza pamięcią i odśmiecaniem (garbage collector), obsługuje wyjątki i pilnuje bezpieczeństwa typów. Dzięki temu ten sam plik programu działa na różnych komputerach, także z innym procesorem. Skojarzenie do zapamiętania: R jak Runtime, czyli czas wykonywania programu.
Wszystkie nazwy z odpowiedzi brzmią podobnie, bo każda zaczyna się od słów „wspólne” albo dotyczy języków, więc łatwo je pomylić. Infrastruktura językowa CLI to specyfikacja, czyli opis zasad, według których różne języki mają współpracować na platformie .NET. Opisuje, jak powinien wyglądać kod pośredni, ale sama niczego nie uruchamia.
Biblioteka klas bazowych BCL to gotowy zestaw klas do pracy z plikami, napisami czy kolekcjami. Programista z niej korzysta, ale biblioteka nie zajmuje się tłumaczeniem kodu na instrukcje procesora.
Skrót CLP nie oznacza żadnego standardowego składnika platformy .NET i występuje tu jako dystraktor. Za zamianę kodu pośredniego na kod maszynowy w chwili uruchamiania programu odpowiada wspólne środowisko uruchomieniowe CLR, które dodatkowo zarządza pamięcią programu. Rysunek struktury platformy pokazuje CLR najniżej, tuż nad systemem operacyjnym, bo to ono łączy program z komputerem.