Linguaggi di Programmazione e Macchine Astratte
Come visto nella definizione, una macchina astratta esegue programmi memorizzati al suo
interno. Il linguaggio macchina (LM) di una macchina astratta M
e' il linguaggio in cui si esprimono tutti i programmi interpretabili
dall'interprete di M. LM definisce quindi l'insieme delle strutture dati che realizzano la rappresentazione interna dei programmi eseguibili da M. E' bene mettere in evidenza che quelli che normalmente chiamiamo programmi
in LM non sono altro che particolari dati primitivi su cui
opera l'interprete di M.
Così come data una macchina astratta resta definito un linguaggio di programmazione (il
suo linguaggio macchina), analogamente dato un linguaggio di programmazione
resta definita una macchina astratta che ne supporta le caratteristiche principali e che
ha il dato linguaggio come suo linguaggio macchina.
È da notare che gli High Level Language o HLL (cioè quei linguaggi che
consentono al programmatore di esprimere i propri algoritmi in una forma molto vicina a quella in cui li
ha pensati) definiscono macchine astratte tanto più complesse quanto maggiore è la potenza
espressiva del linguaggio in questione.
Di conseguenza la realizzazione in hardware è opportuna solo per
macchina astratte relativamente semplici, mentre nel caso di una macchina
astratta associata ad un linguaggio di alto livello questa scelta è poco conveniente,
e risulta preferibile una realizzazione non hardware.
|