Newsgroup: it.comp.lang.visual-basic
Titolo: Su compilazazione VB contro C

Salve,
volendo capire più in profondità l' origine delle differenze in termini di
prestazioni che caratterizzano i vari linguaggi
di programmazione vado a descrivere questa situazione.
Un applicativo scritto in C/C++ risulta avere delle prestazioni in termini
di velocità maggiori di un programma scritto in
visual basic.
Ciò è quanto comunemente molti programmatori affermano e io vorrei capire le
ragioni tecniche di questo fatto.
Infatti supponiamo di compilare in codice nativo un programma VB , esso per
funzionare a run time si appoggia
alla libreria msvbvm60.dll. Un programma C/C++  invece ho letto che
utilizza una altra libreria di
run  time  la msvcrt.dll.
Ora, La differenza di prestazioni  nasce soltanto dalla differenza di
prestazioni di queste 2 librerie ?
Oppure il compilato nativo di VB è di per se meno ottimizzato di quello
prodotto dal
compilatore VC ?
In tal caso le prestazioni del Vb potrebbero essere teoricamente superiori a
quelle del VC se qualcuno per ipotesi scrivesse un compilatore migliore ?
Con l'avvento di .NET tutte le applicazioni scritte nei vari linguaggi
 avranno un compilato comune noto come  IL, questo significa che uno stesso
programma o routine particolare scritto in
VB.net e in VC.net dovranno
avere le stesse prestazioni in termini di velocità ?
Grazie a chi vorrà chiarire queste questioni.

 visual basic.
Ho visto C solo da lontano e non mi pare (per sua natura e "vantaggio") che
esistano istruzioni "complesse" e pronte all'uso. VB invece le ha e
semplifica la scrittura del codice in termini _assoluti_ di numero di righe
(non di velocità), C no, ma ti consente, scrivendo _relatiavamente_ molte
più righe, di accedere _direttamente_ più vicino al cuore del ... linguaggio
macchina, quindi necessita di uno sviluppo (compilazione) di livelli di
decodifica inferiore.
Insomma, se scrivo in Assembler passerò anni ad inserire righe, ma,
presumibilmente, il programma girerà più velocemente di un programma scritto
in VB e, ovviamente, anche in C.
Altro discorso (ma traspare) è il mantenimento che, suppongo, sia più
oneroso per un programma scritto in C che non in VB.

 di quello prodotto dal compilatore VC ?
Il compilatore finale è (quasi ?) lo stesso. In realtà per creare
l'exe di un progetto VB vengono creati dall'IDE dei file .OBJ
che poi vengono passati al compilatore (C2.EXE). Questi però
comprendono una serie di controlli di congruenza, fra l'altro,
che rallentano in maniera notevole il prodotto finale. Alcuni di
questi controlli possono venir esclusi (dal menu: progetto->
proprietà->compila->ottimizzazioni avanzate), con aumenti
di prestazioni, per alcuni tipi di operazioni, anche notevoli.
Le diferenze maggiori sono però nell'interfaccia, e qui il discorso
si fa lungo... e io devo lavorare :-). In breve, e superficialmente:
l'interfaccia di un programma in C può venir scritta in modo
minimale, cioè con le sole funzioni che effettivamente servono
nel programma, mentre un (esempio) form o controllo di VB
si porta dietro tutte le possibili funzioni di quel form o controllo,
anche quelle che nel programma non vengono nè verranno
mai utilizzate. Per il resto passo la palla agli altri :-).
Bye, G.
--
Le risposte alle tue domande sono sul Sito Comune
di questo NewsGroup: 
http://it-lang-vb.net/
... e nell'help in linea !

 avere le stesse prestazioni in termini di velocità ?
Sì, saranno tutti e due _lenti_ uguale.
Ciao

 Sì, saranno tutti e due _lenti_ uguale.
MEGAROTFL =)
Comunque 
VC.NET
 mi fa pensare troppo a 
WC.NET
 =)
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt

 Sì, saranno tutti e due _lenti_ uguale.
L'esecuzione del codice *non* sarà lenta, anzi, VB non sarà
mai stato così veloce...
Probabilmente sarà la compilazione IT a richiedere un po' più
di tempo della normale attivazione.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.