PDA

Visualizza la versione completa : Compilatori e Interpreti


Boris.89
25-01-2004, 16:01
Ciao a tutti!
Allora, devo chiarire una cosa, qual' la differenza tra compilatore e interprete? In questo caso un Interpetre per Python, e un compilatore C/C++!

JunkyFunki
25-01-2004, 16:13
Se non ricordo male un intreprete prima traduce in linguaggio macchina l'istruzione corrente eppoi esegue l'istruzione

Il compilatore si limita solo a tradurre tutto il sorgente in linguaggio macchina senza eseguirlo

iguana13
25-01-2004, 16:57
Devi sapere che il microprocessore sa eseguire solo elementari istruzioni in linguaggio macchina.
Nel linguaggio Assembly ogni istruzione corrisponde ad una in linguaggio macchina, solo che sono leggibili anche da un umano :D

In seguito, per semplificare la vita ai programmatori, sono stati inventati dei LDP molto pi faccili, trasportabili, aggiornabili e veloci da scrivere dell' assembler.
Per farli capire anche al microprocessore si usano principalmente due metodi:

Compilazione
Il compilatore traduce tutto il programma in linguaggio macchina, creando un file .EXE che tu esegui quando vuoi senza problemi (si spera).
Sono linguaggi compilati ad esempio C, C++ e Delphi.

Interpretazione
L'interprete invece carica il file sorgente, converte una o un piccolo blocco di istruzioni alla volta in linguaggio macchina e le esegue direttamente.
Praticamente, compila il programma man mano che lo esegue.
Sono linguaggi interpretati Phyton e Java.

I linguaggi interpretati sono + lenti di quelli compilati per il lavoro di traduzione che viene fatto in run-time, ma generalmente sono + indipendenti dalla piattaforma, perch un codice sorgente a differenza del linguaggio macchina + trasportabile.

Naturalmente ogni linguaggio pu essere allo stesso tempo interpreatato e compilato.

:ciauz:

Boris.89
25-01-2004, 17:09
Perci, se io voglio mandare un file a qualcuno, scritto in Python, funziona solo a chi possiede un Interpetre, e col compilatore invece posso mandarli anche se qualcuno non possiede interpreti, etc..? :confused:

iguana13
25-01-2004, 17:31
Esatto :D

JunkyFunki
25-01-2004, 17:39
x iguana

xch questa differenza fra ling. interpretati e compilati???

java lo consideri un ling.interpretato xch genera un .class invece di un .exe?

iguana13
25-01-2004, 17:54
Un file .class NON codice macchina.
Deve esserci la Java Virtual Machine ad interpreatrlo. ;)

JunkyFunki
25-01-2004, 17:59
Originariamente inviato da iguana13
Un file .class NON codice macchina.
Deve esserci la Java Virtual Machine ad interpreatrlo. ;)

un qualsiasi linguaggio pu essere sia interpretato che compilato , giusto?

se lo interpreto traduco ed eseguo istruzione dopo istruzione

se lo compilo prima traduco tutto eppoi eseguo


non funziona cosi? :master:

iguana13
25-01-2004, 18:05
Vero.

L'ho anche detto nel mio post:


Naturalmente ogni linguaggio pu essere allo stesso tempo interpreatato e compilato.

:ciauz:


Solo che serti linguaggi sono + spesso interpretati che compilati e viceversa...

Non ho mai visto un interprete di C++ :)

JunkyFunki
25-01-2004, 18:12
Originariamente inviato da iguana13
Vero.

L'ho anche detto nel mio post:


Solo che serti linguaggi sono + spesso interpretati che compilati e viceversa...

Non ho mai visto un interprete di C++ :)

allora il debug cos'?non funziona come un interprete?

Loading