Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Guilherme Luís Maba
Título: Implementação de um Compilador para uma Linguagem de Programação com Geração de Código LVIS e MSIL
 
Conclusão:
Atualmente existem várias tecnologias e plataformas de desenvolvimento afim de facilitar o trabalho dos programadores, focando em características a favor da legibilidade, da reusabalidade e da portabilidade de código, além do tempo de desenvolvimento. Ao tratar da questão da portabilidade e da reusabilidade, pode-se gerar código intermediário, um código independente de plataforma, para uma máquina virtual abstrata.
Este trabalho apresenta o desenvolvimento de um ambiente de compilação simplificado para a linguagem de programação MAB, que gera código intermediário para as máquina virtuais LLVM e CLR. Apesar da linguagem MAB não possuir todos os recursos das linguagens de alto nível atuais, é possível desenvolver programas na linguagem e obter os códigos intermediários em LVIS e em MSIL equivalentes. As construções sintáticas especificadas foram suficientes para identificar as instruções específicas e funcionamento das máquinas virtuais LLVM e CLR. Observa-se que foi necessário um estudo detalhado da fase de geração de código intermediário do compilador, já que as máquinas virtuais possuem tipos distintos de código. O código intermediário gerado para máquina LLVM (LVIS) é um código que utilizada o conceito de máquina de três endereços, já a máquina CLR (MSIL) é uma máquina de pilha. A principal dificuldade em desenvolver o compilador para as duas máquinas foi que, além de executar as análises léxica, sintática e semântica independente da máquina alvo, foi necessário gerenciar a árvore do código gerado para cada linguagem, sendo que cada máquina utiliza uma técnica distinta da outra.
A grande vantagem de gerar código intermerdiário para uma máquina virtual é que este código é independente de plataforma e também pode sofrer otimizações em sua geração. A desvantagem deste processo é o custo de processamento que a máquina virtual precisa para interpretar o código intermediário.
As bibliotecas utilizadas para desenvolver o compilador foram importantes para a conclusão do trabalho. Com o PLY foi possível fazer as definições regulares da linguagem, especificar as regras sintáticas, implementar as validações semânticas necessárias e a geração do código intermediário. Com o uso do PyQT diminui-se o tempo de desenvolvimento da interface gráfica do compilador, pois é uma biblioteca simples de ser utilizada, com documentação acessível e totalmente escrita em Python, facilitando a integração com as demais classes implementadas. Também foi utilizada a ferramenta QT Designer para desenhar a interface do compilador, agilizando e facilitando esta etapa do desenvolvimento