Kärnan i Microsoft.NET-plattformen innehåller en ny virtuell maskin, det gemensamma mellanspråk, även känd som MSIL. Till skillnad från de flesta andra virtuella maskiner, inklusive Java VM, är MSIL speciellt utformad för att stödja ett brett spektrum av språk. Även om det är utformat främst för typsäkra, objektorienterade språk, har det också faciliteter som stöder både låg nivå språk och mycket hög nivå språk. Till exempel, det rymmer osäkra pekare aritmetik och svans anrop. Detta dokument beskriver genomförandet av en MSIL back end för lcc, en retargetable kompilator för Standard C. C är i ena änden av det utbud av språk som MSIL avser att stödja, och lcc är om den enklaste "riktiga" C kompilator allmänt tillgänglig. Porting lcc till MSIL ger därmed en realistisk test av hur väl MSIL stöder denna klass av språk och ger en glimt av dess prestandakostnader. Detta arbete lyckades, men statiska initieringar, funktionspekare, separat sammanställning och adress aritmetik var stora problemområden. Dessa problem föreslog också förbättringar i lcc: s kod-generation gränssnitt, och de avslöjade ett långvarigt fel i lcc fronten. Program som sammanställts av MSIL back end kör 2-3 gånger långsammare än de som sammanställts av lcc infödda Intel x86 back end, men MSIL-programmen har några viktiga diagnostiska fördelar.
Lcc är en enkel retargetable kompilator för Standard C. Hanson REF beskriver hur han riktade Lcc till CLI.
Lcc.NET: Targeting the.NET Common Intermediate Language from Standard C
{'venue': None, 'journal': None, 'mag_field_of_study': ['Computer Science']}