2. La macchina virtuale Java


2.3 I registri

Analogamente ad un microprocessore reale, la macchina Java possiede una serie di registri che tengono conto dello stato della macchina stessa. Essi , lunghi ciascuno 32 bit, sono quattro:

  1. pc: registro del program counter
  2. optop: registro che memorizza il puntatore alla sommità dello stack degli operandi
  3. frame: registro che memorizza il puntatore al passo in esecuzione del metodo corrente
  4. vars: registro che memorizza il puntatore alla prima variabile locale del metodo corrente

La macchina Java è fondata sullo stack. Ciò significa che non esistono registri interni in cui i dati tratti dalla memoria esterna al microprocessore vengono immagazzinati, trattati e ripassati alla stessa memoria esterna. Questo compito viene assolto dallo stack. Ciò comporta una semplificazione della macchina Java, senza peraltro diminuirne la velocità. Infatti, essendo la macchina Java virtuale, eventuali registri interni virtuali non sarebbero comunque dei veri registri interni più veloci della memoria esterna al microprocessore.