Common Intermediate Language
Common Intermediate Language (CIL) (tidigare kallat Microsoft Intermediate Language eller MSIL) är ett mellanliggande högnivå-assemblyspråk som beskrivs i Common Language Infrastructure (CLI). Alla CLI-kompatibla programspråk kompileras till CIL bytekod. CIL är ett objektorienterat assemblyspråk som är baserad på stack-principen. CIL är plattformsoberoende och exekveras av en virtuell maskin. Bland språk som kompileras till CIL finns C#, Visual Basic .NET, C++/CLI och J#.
CIL gick tidigare under namnet Microsoft Intermediate Language (MSIL) men är sedan standardisering känt som CIL. Trots detta kallas det fortfarande MSIL av många utvecklarna som varit med från början.
Syntax
Common Intermediate Language är stack-baserat dvs. att variablerna som används i en operation sparas på en stack, till skillnad från vanliga assemblerspråk som är register-baserade. Utöver detta så är språket också objektorienterat. Dessa funktioner är integrerade i CIL för att göra det enklare för programmeringsspråken som delar det som ett mellanliggande språk lättare ska kunna interagera med varandra.
Exekvera CIL
- Källkoden (skriven i ett .NET-språk) kompileras till CIL och ett .NET Assembly skapas.
- Vid exekvering skickas CIL-instruktionerna genom exekveringsmotorns (till exempel CLR) JIT-kompilator och översätts till maskinkod. (NGEN eliminerar det här steget vid körning).
- Maskinkoden exekveras av datorns processor.
Exempel
Här är det berömda Hello World-programmet skrivet i CIL.
.assembly HelloWorld{} .method public hidebysig static void Main() cil managed { .entrypoint ldstr "Hello World!" call void [mscorlib]System.Console::WriteLine(string) ret }
Se även
- Java Bytecode
Externa länkar
- Hello world program in CIL
- Kenny Kerr's intro to CIL (called MSIL in the tutorial)
- Common Language Infrastructure (CLI ) - Partition III - CIL Instruction Set
- Tutorial including CIL (called MSIL in the tutorial) by Aleksey Nudelman
- Common Language Infrastructure (Standard ECMA-335)
- Speed: NGen Revs Up Your Performance With Powerful New Features -- MSDN Magazine, April 2005
|