Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Douglas Ruskowski Haase
Título: Geração de Código para a Máquina Virtual de Rótulos
 
Introdução:
A MVR é uma proposta apresentada em Silva (2003). A proposta desta máquina objetiva a identificação de ciclos infinitos e nós e caminhos mortos, de forma tratável (num tempo admissível), sendo baseada na máquina Number theOretic Register MAchine (NORMA) (DIVERIO; MENEZES, 2008, p. 33-37, 70). A máquina NORMA possui uma estrutura de controle iterativa. Entende-se por ciclos infinitos os comandos que nunca levam ao final do programa. Já os nós mortos são comandos que nunca são executados e os caminhos mortos são aqueles não alcançados (percorridos). A memória da referida máquina é composta por um conjunto infinito (máquina teórica) de registradores naturais. A proposta da estrutura da MVR é monolítica, diferindo da abordagem iterativa da máquina NORMA, mas que também utiliza como memória um conjunto de registradores naturais.
A linguagem objeto para a MVR definida é chamada de LIR (SILVA, 2003). A LIR é uma linguagem orientada por instruções. Uma primeira implementação da MVR pode ser vista em Silva (2004). No referido trabalho foi implementada a MVR e um ambiente para desenvolvimento de programas escritos em LIR, onde o montador já detecta ciclos infinitos e nós e caminhos mortos. Ainda neste ambiente, existe a opção de execução normal ou passo a passo.
Mediante o descrito acima, este trabalho propõe-se à definição de duas linguagens, a LAN e a LIT (independentes de plataforma – hardware e sistema operacional) e a construção de um compilador para as mesmas, sendo o código objeto gerado em LIR para a MVR. Tanto a programação de origem (alto nível ou iterativa) quanto a conversão para a representação em LIR serão feitas no ambiente desenvolvido. Este resultado será fornecido como entrada para o trabalho de Silva (2004), em que se construiu um ambiente para auxiliar o desenvolvimento de programas monolíticos. No ambiente de Silva (2004) espera-se como entrada instruções rotuladas, as quais são convertidas na forma de instruções rotuladas compostas.
O trabalho proposto também objetiva um melhoramento da didática utilizada para aplicação de exercícios de teoria da computação, mostrando a programação para uma máquina teórica na prática, já que será possível praticar a programação e conversão de linguagens de alto nível para instruções rotuladas.