Newsgroup: it.comp.lang.visual-basic
Titolo: Codice IL

Sto mettendo il naso in .NET ed ho un dubbio che vorrei mi aiutaste a 
chiarire.
Leggo nel libro di Balena "Programmare MS Visual Basic - Il Linguaggio" che 
i compilatori .NET non producono codice nativo, bensì il c.d. codice IL che 
non può essere eseguito direttamente dalla cpu. Ne consegue che il CRL deve 
convertire questo codice in codice nativo mentre il programma è in 
esecuzione (lanciando il compilatore JIT e passandogli l'indirizzo del 
metodo entry point). Così e per qualsiasi metodo invocato da Main, il 
runtime .NET aziona il compilatore JIT per trasformare il codice IL il 
codice nativo al fine di eseguirlo.
La domanda è: tutto questo fa di .NET un linguaggio interpretato (come 
Java)?
Se sì, qual è il costo in termini di prestazioni rispetto a VB6?
Grazie in anticipo.
eSQueL

 Se sì, qual è il costo in termini di prestazioni rispetto a VB6?
Si ha sicuramente un overhead dovuto alla prima compilazione dei metodi 
utilizzati (tipicamente la applicazioni .NET sono più lente all'avvio 
rispetto alle applicazioni native), però secondo molti, durante 
l'esecuzione, le prestazioni possono anche essere superiori.
Questo perché il JIT conosce perfettamente la piattaforma sulla quale 
risiede, quindi può compilare al volo utilizzando tutte le 
ottimizzazioni personalizzate possibili. Invece un programma nativo, in 
teoria, dovrebbe venire compilato in versioni diverse per ogni 
processore, per dare il massimo.
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

 ha scritto nel messaggio 
news:gb2gh6$117$1...@registered.motzarella.org...

Grazie della risposta.
Se ho ben compreso, .NET sta a mezza strada fra un linguaggio puramente 
compilato ed uno puramente intepretato. In questo modo, tuttavia, MS 
potrebbe implementare JIT in modo tale da renderlo del tutto simile a JVM, 
realizzando una portabilità pressoché assoluta delle applicazioni .NET.
eSQueL 

 realizzando una portabilità pressoché assoluta delle applicazioni .NET.
Cosa che non è stata fatta da Microsoft ma in parte dal progetto mono
http://www.mono-project.com
Ciao
PaF

 ha scritto nel messaggio 
news:m2vw9ymjfos9.136uza9830uye$.dlg@40tude.net...

Interessante. Se non fosse per la specifica 'open-source' ci sarebbe da 
pensare che Mono è di proprietà M$ :D
eSQueL 

 pensare che Mono è di proprietà M$ :D
la realtà è molto più semplice: le specifiche di "CLR e compagnia" (quindi 
anche IL) sono uno standard ISO
http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42927
Quindi chiunque, pagando i 342 franchi svizzeri necessari a scaricare il 
documento dal sito ISO, può implementare un runtime per qualunque OS.
-- 
.A
GUISA - 
http://www.guisa.org
UGIdotNET - 
http://www.ugidotnet.org
Read my blog at: 
http://blogs.ugidotnet.org/pape
 


Beh, 'chiunque' è una parola impegnativa. Poi, presumo ci potrebbero essere 
anche questioni legali. A parte le battute, credo ci sia senz'altro un 
agreement piuttosto dettagliato fra M$ e Novell che permetta a quest'ultima 
la distribuzione di Mono.
eSQueL 

 essere anche questioni legali.
Beh, "chiunque" significava "chiunque abbia risorse sufficienti per farlo". 
:-) BTW, non c'è bisogno di un accordo con Microsoft poichè, ripeto, si 
tratta di uno standard ISO.



Aspetta che questo è interessante. Mi sembra di aver capito che il CLR è il 
primo strato sopra Windows e COM. Sopra ancora ci sta la libreria delle 
classi di base e poi il resto sino ai compilatori specifici. Quindi, M$ 
avrebbe realizzato il Framework interamente intorno al CRL che, come dici, 
non è proprietario. Insomma, windows proprietario-CRL non prop.-Libreria 
classi prop. e via di seguito.
Carino :) E, per certi versi, anche sorprendente perché uno mica se lo 
aspetterebbe da M$
Ma magari sono io che non ho capito un ciufolo :P
eSQueL


Dipende da quale sia la Microsoft della quale stiamo parlando <g> Se stiamo 
parlando di quella che:
- dal 1998 "regala" SQL Server (MSDE)
- dal 2001 ha pubblicato il sorgente del CLR (progetto Rotor), compilabile 
anche per Unix BSD
- dal 2002 ha reso disponibile il sorgente di windows a *tutte* le 
università degli stati non dichiarati ostili dal governo degli USA
- dal 2004 offre una licenza "tutto compreso" che al modico costo *totale* 
annuo di 400 euro (+IVA) permette ad università ed istituti tecnici di 
insallare Windows+VisualStudio su *tutti* i PC dei laboratori e permette di 
masterizzare le ISO (sia Windows sia Visual Studio) agli studenti per l'uso 
casalingo
- dal 2005 regala le versioni "espress" di Visual Studio
beh, francamente non mi stupisce. Che poi lo facciano non per "filosofia" ma 
per ragioni marketing, beh... E' tutt'altro discorso :-)
-- 
.A
UGIdotNET - User Group Italiano .NET
