Concetti Chiave
- Le macchine a più livelli facilitano la comunicazione tra diverse parti di un calcolatore, utilizzando linguaggi diversi per ogni livello.
- Il linguaggio di macchina L0 è un linguaggio assembly limitato, eseguito direttamente dall'hardware, ma complesso per i programmatori umani.
- Viene introdotto un linguaggio L1, eseguibile su un computer virtuale, che richiede traduzione in L0 per essere processato dall'hardware.
- La traduzione tra i livelli avviene attraverso interpreti o compilatori, con ogni livello richiedente un traduttore specifico.
- La compilazione crea un nuovo programma traducendo il linguaggio macchina, mentre l'interpretazione esegue direttamente il programma sulla macchina virtuale.
Macchine a più’ livelli
Per trasmettere le informazioni dell’utente fino al processore viene usata la tecnica delle macchine a più livelli, cioè il calcolatore viene considerato come l’insieme di più macchine che comunicano tra loro in modo diverso l’una dall’altro.
Linguaggio di macchina L0 (assembly) = linguaggio limitato composto dall’insieme di istruzioni eseguite dall’hardware del calcolatore. La limitatezza è a causa del costo (dell'hardware) e della complessità (quella del computer cresce più che proporzionalmente rispetto a quella del linguaggio)
Il linguaggio L0 non è adatto a un programmatore umano, sono così nate le macchina a più livelli.
Per non rendere troppo complicata la traduzione tra L1 e L0, l’idea della macchina virtuale può essere replicata più volte, in cui il linguaggio Ln può essere interpretato o viene tradotto in una macchina con linguaggio più basso.
Ad ogni livello serve un traduttore.
Ci sono due tecniche per la traduzione:
- compilazione: il compilatore/assemblatore legge il programma in linguaggio macchina e produce un nuovo programma
- interpretazione: l’interprete legge il programma in linguaggio macchina ed esegue direttamente la traduzione sulla macchina virtuale