Kompilacja CLR

0

Hej,
Z tego co się orientuje to po napisaniu aplikacji i skompilowaniu w folderze Debug/bin pojawiają się pliki uruchomieniowe w języku CIL. Czy kompilacja z CLR do języka rozumianego przez komputer (010101...1001) odbywa się dopiero podczas uruchomienia i wywołania jakiejś funkcji (JIT)?
A jeśli tworzymy bibliotekę to czy ona jest skompilowana do CLR czy do 0100110...110? Jeśli do CLR to czy można tą bibliotekę dołączyć do programu napisanego w javie na systemie bez zainstalowanego .NET?

2

Tak, kompilacja z CIL do kodu natywnego dokonywana jest standardowo podczas uruchamiania aplikacji (Just-In-Time, JIT). Obecnie zajmuje się tym nowy kompilator RyuJIT: http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx

Jeżeli tworzymy bibliotekę klas .NET ("assembly") to ona również kompilowana jest do kodu pośredniego (CIL). Java i jej maszyna wirtualna (JVM) nie potrafi skorzystać z bibliotek .NET-owych.

Można kompilować aplikacje do kodu natywnego - istnieje ngen oraz .NET Native. W pierwszym przypadku oczywiście wymagane jest nadal posiadanie środowiska uruchomieniowego .NET na komputerze (choćby po to, by korzystać z bibliotek Frameworka). W przypadku .NET Native jest trochę lepiej, bo wymagane jest tylko minimalne środowisko w postaci biblioteki MRT, ale obecnie ta technologia jest dostępna tylko dla aplikacji korzystających z platformy UWP - po ludzku - tylko dla aplikacji w stylu "modern" dla Windows 10.

1 użytkowników online, w tym zalogowanych: 0, gości: 1