Common Intermediate Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
ho rimosso alcune info non veritiere, o obsolete, aggiornando l'articolo contribuisco ad una migliore informazione sull'argomento Etichette: Modifica da mobile Modifica da web per mobile |
corretti errori di ortografia |
||
(7 versioni intermedie di 3 utenti non mostrate) | |||
Riga 16:
}}
Il '''Common Intermediate Language''' (CIL), in italiano '''linguaggio intermedio comune''', è il [[linguaggio di programmazione]] di livello più basso previsto dalla piattaforma [[Framework .NET|.NET]] e dal [[Common Language Infrastructure]]. Quando un linguaggio è supportato dalla piattaforma .NET vuol dire che esiste un compilatore che traduce i programmi scritti in quel linguaggio in istruzioni del CIL, che quindi risulta avere lo stesso ruolo che il [[bytecode]] ha nel mondo [[Java (linguaggio di programmazione)|Java]]. Il CIL è un [[linguaggio assembly]] [[linguaggio orientato agli oggetti|orientato agli oggetti]], ed è completamente basato su
Durante la fase di beta dei linguaggi .NET il CIL era conosciuto come '''MSIL''', cioè ''Microsoft Intermediate Language'', in italiano "linguaggio intermedio della Microsoft".
L'utilizzo principale della piattaforma sarebbe quello di fornire agli sviluppatori strumenti che facilitino il lavoro nella scrittura di programmi elaborati come compilatori. CIL facilita esponenzialmente il lavoro, supportando l'orientazione agli oggetti, i tipi primitivi dotati di metodi, l'istanziamento di array e oggetti con poche istruzioni e il supporto all'uso delle costanti che l'assembly x86 non supporta, come gli oggetti, le stringhe e altri tipi primitivi.
==Esempi==
Esempio hello world
.assembly extern mscorlib{}
Line 29 ⟶ 31:
.entrypoint
ldstr "Ciao mondo."
call void [mscorlib]System.Console::WriteLine(string)
ret
}
Esempio variabili locali
.assembly extern mscorlib{}
.assembly CiaoMondo{}
.method public hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.locals init (
[0] string a
)
ldstr "s" // stack ["s"]
stloc.0 // memorizza nella memoria locale all'index 0 (a)
// stack []
ldloc.0 // carica sullo stack la variabile locale all'index 0 (a)
// stack ["s"]
call void [mscorlib]System.Console::WriteLine(string)
ret
}
Esempio funzione come parametro
.assembly extern mscorlib{}
.assembly CiaoMondo{}
.method public hidebysig static void Main() cil managed
{
.entrypoint
call string [mscorlib]System.Console::ReadLine()
call void [mscorlib]System.Console::WriteLine(string)
ret
|