L'architettura di una Macchina Astratta
|
![]() |
La componente centrale di ogni Macchina Astratta è il suo Interprete; esso è il cuore della macchina e procede prelevando di volta in volta un'istruzione del programma e coordinando le operazioni delle altre componenti per completare l'azione associata all'istruzione.
Allo start-up, alla macchina viene specificata una classe principale
a partire dalla quale avrà inizio l'esecuzione del programma.
Tale classe viene indicata all'interno di un Class Repository,
il quale contiene tutte le classi di sistema e che nella pratica
può essere realizzata con un disco fisso ( DISK ) o con
una connessione di rete locale ( LAN ) o globale ( WEB ).
La componente che si occupa di caricare la suddetta classe nella
Macchina Astratta è il Class Manager,
e la zona di memoria gestita da tale modulo dove questa classe
viene memorizzata e dove risiede il codice delle varie classi prende il
nome di Method Area
Non appena la classe è stata caricata, l'interprete ne inizia
l'esecuzione del metodo main. A tal fine, tramite lo
Stack Manager, viene allocata nello
Stack una Frame
per tale metodo e l'interprete passa ad interpretarne il primo bytecode.
Per ogni bytecode, nell'Instruction set
è presente una entry che descrive il comportamento della macchina
al fine di realizzare l'operazione denotata dal bytecode corrente.
Un'altra struttura fondamentale presente nella macchina è
l'Heap, che è gestito da un apposito
modulo detto Heap Manager.
Tale area di memoria è destinata a contenere gli oggetti che vengono
via via creati e modificati durante l'esecuzione del programma.
La gestione di questa memoria è totalmente a carico dello Heap Manager,
che si preoccuperà di eliminare gli oggetti ormai inutili e di
mantenere tale area in ordine.
Questa gestione automatica è tipica dei linguaggi
La macchina astratta proposta è del tipo
Prev | Top | Next |