|
Per poter essere
eseguito da un elaboratore elettronico, ogni algoritmo deve essere
codificato mediante le parole chiave di un linguaggio di
programmazione. Un simile linguaggio è costituito da un insieme di
parole e di regole sintattiche che ci consentono di tradurre in
termini precisi e non ambigui i singoli passi che costituiscono un
algoritmo. In un certo senso si può anche pensare ad un linguaggio di
programmazione, come ad un tramite tra la nostra lingua parlata (ricca
di forme e sfumature che la rendono ambigua ed inadatta a comunicare
con una macchina) ed il linguaggio dell'elaboratore elettronico, il
cosiddetto linguaggio macchina (che al contrario della nostra lingua
parlata è un linguaggio assai povero di espressioni, ma dotato di una
precisione ``millimetrica'').
Il calcolatore non è in grado di tradurre in operazioni da eseguire le
istruzioni codificate mediante un linguaggio di programmazione.
L'unico linguaggio con cui il computer è in grado di operare è il
linguaggio macchina. Dobbiamo quindi dotarci di appositi programmi
(scritti in linguaggio macchina!) che si occupino della traduzione
delle istruzioni dei nostri programmi scritti con un linguaggio di
programmazione, nel linguaggio della macchina.
Questo tipo di programmi traduttori sono classificabili in due
categorie principali, in base al loro modo di operare la traduzione:
compilatori:
effettuano la traduzione delle righe del programma una volta
per tutte e producono in output un programma in linguaggio macchina
equivalente a quello fornito in input dal programmatore; il programma
compilato potrà poi essere eseguito più volte senza che sia necessaria
ogni volta una operazione di traduzione;
interpreti:
effettuano la traduzione di una istruzione di programma per
volta e la eseguono immediatamente dopo averla tradotta; quindi ogni
volta che si esegue un programma l'interprete lo traduce un'istruzione
dopo l'altra durante l'esecuzione.
Il vantaggio dell'uso di un interprete rispetto ad un compilatore sta
nel fatto che il programma sorgente può essere modificato in ogni
momento e poi inviato immediatamente in esecuzione, senza la necessità
di dover eseguire ulteriori passaggi. In generale però, un programma
compilato è molto più efficiente di un programma interpretato. Il Perl,
oggetto di queste dispense, è un linguaggio interpretato, ma garantisce
una elevata efficienza grazie al fatto che integra delle macro
istruzioni già pronte per essere utilizzate. Uno dei più famosi
linguaggi di programmazione, il BASIC, è spesso un linguaggio
interpretato. Viceversa il C, il Fortran ed il Pascal sono dei linguaggi
dotati di un compilatore. |