区四届人大五次会议建议目录
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
[redigera | redigera wikitext]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
[redigera | redigera wikitext]- 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
[redigera | redigera wikitext]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
[redigera | redigera wikitext]Externa l?nkar
[redigera | redigera wikitext]- 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
|