close

Limbaj intermediar comun

Mergi la navigare Mergi la căutare

Common Intermediate Language (CIL, pronunțat „sil” sau „kil”) (denumit anterior Microsoft Intermediate Language sau MSIL) este limbajul de programare de cel mai scăzut nivel care poate fi citit de om din Common Language Infrastructure și din .NET Framework . Limbile .NET Framework se compilează în CIL. CIL este un limbaj de asamblare orientat pe obiecte și se bazează pe stive . Este condus de o mașină virtuală . Principalele limbi .NET sunt C# , Visual Basic .NET , C++/CLI și J# .

CIL a fost cunoscut inițial ca Microsoft Intermediate Language (MSIL) în timpul versiunilor de testare ale limbajelor .NET. Din această cauză, CIL este adesea numit MSIL. Este posibil să rulați acest limbaj pe platformele GNU/Linux datorită Proiectului Mono , care implementează o mașină virtuală similară cu .NET dar software liber.

Informații generale

În timpul compilării limbajelor de programare .NET , codul sursă este convertit în cod CIL în loc de cod obiect specific platformei sau procesorului . CIL este un set de instrucțiuni independent de platformă care poate fi executat pe orice CPU.

Instrucțiuni CIL

Codul intermediar CIL include un set de instrucțiuni pentru următoarele grupuri de sarcini:

Compilare la runtime

Compilarea just-in-time (JIT) implică conversia codului intermediar în cod executabil imediat de CPU . Conversia se face treptat în timpul execuției programului. Compilarea JIT oferă optimizare specifică mediului, siguranța tipului de rulare și verificarea ansamblului. Pentru a realiza acest lucru, compilatorul JIT examinează metadatele ansamblului pentru acces ilegal și tratează în mod corespunzător încălcările.

Generator de imagini nativ

Generatorul de imagini native (NGEN) produce o imagine binară nativă pentru mediul curent. Codul octet este fie omis în întregime, fie convertit în instrucțiuni native ale procesorului înainte de execuție. Acest lucru elimină costul general JIT cu prețul portabilității; Când o imagine generată de NGEN este rulată într-un mediu neacceptat, framework-ul .NET va folosi automat compilatorul JIT.

NGEN are scopul de a face execuția ansamblului mai rapidă prin eliminarea procesului de compilare JIT în timpul execuției, dar în unele cazuri, acest lucru are efecte adverse datorită optimizării efectuate de optimizatorul JIT. Din acest motiv, se recomandă utilizarea NGEN numai după măsurarea performanței aplicației înainte și după utilizare.

Compilarea în .NET Native în cloud

Începând din aprilie 2014, Microsoft a început să dezvolte tehnologia cloud necesară pentru ca toate aplicațiile din Universal App Store să fie compilate folosind codul .NET Native to nativ pe dispozitiv. [ 1 ] Acest lucru va îmbunătăți considerabil performanța aplicațiilor universale în Windows 10 atât pentru telefoane, cât și pentru computere, permițându-le să se deschidă și să se reia cu 60% mai rapid și să utilizeze cu 20% mai puțină memorie, permițând timpi de răspuns mai rapid al sistemului. [ 2 ]

Acest lucru va îmbunătăți performanța enorm, în special pe dispozitivele în care consumul de memorie și procesor este critic, cum ar fi dispozitivele care rulează în prezent Windows Phone 8.1 , care se vor face upgrade la Windows 10 Mobile la sfârșitul anului 2015. [ 3 ]

Metadate

Metadatele sunt informații despre clasele compilate. La fel ca tipurile de bibliotecă din Modelul de obiecte componente , permite aplicațiilor să furnizeze și să descopere interfețe, clase, tipuri, metode și câmpuri în ansamblu. Procesul de citire a metadatelor se numește reflecție .

Execuție CIL

  • Codul sursă este convertit în limbajul intermediar comun și este creat un ansamblu .NET .
  • Până la execuția unui ansamblu .NET, CIL-ul acestuia este trecut prin compilatorul JIT al common language runtime pentru a genera cod nativ. (Compilarea NGEN elimină acest pas în timpul execuției.)
  • Codul nativ este executat de procesorul computerului.

Referințe

  1. „În interiorul .NET Native . Canalul 9. 2 aprilie 2014 . Consultat la 13 octombrie 2015 . 
  2. „Microsoft .NET Native” (în engleză) . Microsoft. 10 iulie 2015 . Consultat la 13 octombrie 2015 . 
  3. ^ „Actualizarea la Windows 10 Mobile ar sosi în noiembrie, potrivit Lumia Spania” . Microsoft Insider. 8 octombrie 2015 . Consultat la 13 octombrie 2015 . 

Link- uri externe