Introdução

Esse ambiente é baseado em uma máquina de pilha, ou seja, todos os comandos utilizam uma pilha como "área de trabalho".

Arquitetura baseada em Pilha

Arquitetura baseada em Pilha

Em um ambiente de execução precisamos considerar a organização da memória. Nessa máquina virtual, cada célula da memória armazena 16 bits que são utilizados para representar todos os valores inteiros, booleanos e endereço de memória.

A memória é dividida em segmentos, que serão utilizados para armazenar os diferentes tipos de variáveis. As variáveis static, field, local e argument são mapeadas pelo compilador nos quatro segmentos de memória static, this, local, argument. Cada variável terá uma posição dentro destes segmentos, por exemplo, uma variável x poderá ser mapeada para o local 1. Além disso, existem mais quatro segmentos de memória adicionais, cuja função será apresentada posteriormente: that, constant, pointer, temp. O emulador da máquina virtual, possibilita visualizar os valores dentro de cada segmento:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/018dd0e8-f265-4037-90b8-a1af9f0d5805/Untitled.png

Além dos oito segmentos, destaca-se as seguintes áreas:

Acesso e operações sobre os dados