GERAÇÃO DE CÓDIGO PARA A MÁQUINA VIRTUAL DE RÓTULOS

Propaganda
ACADÊMICO: DOUGLAS RUSKOWSKI HAASE
ORIENTADOR: JOSÉ ROQUE VOLTOLINI DA SILVA






Introdução
Objetivos
Fundamentação Teórica
Desenvolvimento
Conclusão
Extensões

Prática da programação em uma máquina
teórica utilizando duas linguagens distintas

MVR: estrutura monolítica

Baseado no ambiente de Oliver (2004)

MVR utiliza a Linguagem Intermediária
Rotulada (LIR)



Disponibilizar uma linguagem de alto nível
(LAN)
Disponibilizar uma linguagem iterativa (LIT)
Compilar ambas as linguagens e gerar código
para a MVR

COMPILADORES

MÁQUINAS
◦ MVR
 LIR para MVR

PROGRAMAS
◦ Iterativos
◦ Monolíticos

Ambiente para auxiliar o desenvolvimento de
programas monolíticos

Construção de programas recursivos

Requisitos

Especificação

Implementação

Operacionalidade

Requisitos
◦ Requisitos funcionais
 Possuir um editor para escrita de programas em LAN e
LIT
 Analisar e compilar os programas escritos e exibir
erros se houverem
 Converter os programas escritos em LAN e LIT
para um programa monolítico descrito na forma de
LIR
 Exibir o resultado do programa na linguagem objeto
LIR
 Salvar o código objeto LIR em arquivo de formato
compatível com o ambiente desenvolvido por Silva
(2004)

Requisitos
◦ Requisitos não funcionais
 Ser implementado utilizando a linguagem de
programação Java
 Ser implementado utilizando o ambiente Eclipse

Ferramentas utilizadas
◦ GALS (gramática em notação BNF)
◦ Enterprise Architect

Artefatos gerados
◦
◦
◦
◦
Diagramas
Diagramas
Diagramas
Diagramas
de
de
de
de
casos de uso
pacotes
classes
sequência

Exemplo de programa

Exemplos de programas

Casos de uso

Diagrama de pacotes

Diagramas de classes

Diagramas de classes

Diagramas de sequência

Ferramentas utilizadas
◦ Eclipse
◦ GALS

Recursos e técnicas utilizadas
◦ MVC
◦ SWING




Classe Tela: instância de ControleIterativo e
ControleAltoNivel
Classes de controle: instância de
SemanticoIterativo e SemanticoAltoNivel
Classes de semântica: ações semântica e
geração de código objeto
Pilhas de elementos
(identificadores/registradores)


LIT > geração de tabela intermediária nas
ações semânticas > tradução > LIR
LAN > tradução nas ações semânticas > LIR





O desenvolvedor seleciona uma linguagem
fonte para escrever seu programa
O desenvolvedor codifica seu programa e
aciona o botão Gerar código
O ambiente gerador de código efetua a
tradução do programa para LIR
O ambiente exibe em sua console o estado da
geração de código
O ambiente salva o código objeto para
executar na MVR




Comprova-se a funcionalidade da MVR e sua
utilização com mais de uma linguagem fonte
Facilita a prática e didática da demonstração
de programas iterativos e monolíticos
Ainda trabalha apenas com números naturais,
como a MVR
Gera código totalmente compatível com a
MVR




Objetivos atingidos
Criada representação iterativa em forma de
tabela
Auxílio nos estudos de programas iterativos e
monolíticos
Limitação de suportar apenas números
naturais


Criar mais operações para a LIT e LAN
Implementar módulo de visualização passo a
passo de conversão para LIR

Converter LAN para a tabela intermediária

Converter o ambiente de Oliver para Java
>> Demonstração da aplicação.
Download