Common Intermediate Language
Tipus | llenguatge de programació ![]() |
---|---|
Versió inicial | 2000 |
Característiques tècniques | |
Sistema operatiu | multiplataforma ![]() |
Plataforma | Multiplataforma |
Equip | |
Creador/s | Microsoft, Hewlett-Packard, Intel |
Desenvolupador(s) | Microsoft ![]() |
Més informació | |
Lloc web | https://www.ecma-international.org/publications-and-standards/standards/ecma-335/ |
Stack Exchange | Etiqueta ![]() |
| |
Common Intermediate Language (amb acrònim anglès CIL), abans anomenat Microsoft Intermediate Language (MSIL) o Intermediate Language (IL),[1] és el conjunt d'instruccions binàries del llenguatge intermedi definit dins de l'especificació de la Common Language Infrastructure (CLI).[2] Les instruccions CIL les executa un entorn d'execució compatible amb CLI, com ara Common Language Runtime. Els idiomes orientats a la CLI es compilen a CIL. CIL és un bytecode orientat a objectes i basat en pila. Els temps d'execució solen compilar instruccions CIL en codi natiu.
CIL es coneixia originalment com Microsoft Intermediate Language (MSIL) durant les versions beta del . idiomes NET. A causa de l'estandardització de C# i CLI, el bytecode ara es coneix oficialment com a CIL.[3] Les definicions de virus de Windows Defender continuen fent referència als binaris compilats amb ell com a MSIL.[4]
Durant la compilació dels llenguatges de programació CLI, el codi font es tradueix al codi CIL en lloc del codi objecte específic de la plataforma o del processador. CIL és un conjunt d'instruccions independent de la CPU i de la plataforma que es pot executar en qualsevol entorn que admeti la infraestructura del llenguatge comú, com ara .NET en temps d'execució a Windows o el temps d'execució Mono multiplataforma. En teoria, això elimina la necessitat de distribuir diferents fitxers executables per a diferents plataformes i tipus de CPU. El codi CIL es verifica per a la seguretat durant el temps d'execució, proporcionant una millor seguretat i fiabilitat que els fitxers executables compilats de manera nativa.[5][6]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Overview_of_the_Common_Language_Infrastructure.svg/295px-Overview_of_the_Common_Language_Infrastructure.svg.png)
El procés d'execució té aquest aspecte:
- El codi font es converteix en bytecode CIL i es crea un conjunt CLI.
- Després de l'execució d'un conjunt CIL, el seu codi es passa pel compilador JIT del temps d'execució per generar codi natiu. També es pot utilitzar la compilació anticipada, que elimina aquest pas, però a costa de la portabilitat dels fitxers executables.
- El processador de l'ordinador executa el codi natiu.
Referències
[modifica]- ↑ «Intermediate Language & execution» (en anglès).
- ↑ «ECMA-335 Common Language Infrastructure (CLI)» (en anglès).
- ↑ «What is Intermediate Language(IL)/MSIL/CIL in .NET» (en anglès). [Consulta: 17 febrer 2011].
- ↑ «HackTool:MSIL/SkypeCracker» (en anglès). Microsoft. [Consulta: 26 novembre 2019].
- ↑ Troelsen, Andrew. Benefits of CIL (en anglès), 2009-05-02. ISBN 9781590598849.
- ↑ «Unmanaged, Managed Extensions for C++, Managed and .Net Framework» (en anglès). www.visualcplusdotnet.com. [Consulta: 7 juliol 2020].