Bacharelado em Ciência da Computação
Por: Lucas Faria • 26/3/2019 • Relatório de pesquisa • 1.051 Palavras (5 Páginas) • 493 Visualizações
Centro Universitário Barão de Mauá
Curso de Bacharelado em Ciência da Computação
RELATÓRIO
Ribeirão Preto
2019
CARACTERÍSTICAS
O Lisa é um compilador ou um sistema que gera automaticamente um compilador / interpretador a partir de especificações de linguagem baseadas em gramática de atributos formais. A ferramenta LISA produz código fonte altamente eficiente de scanner / analisador / interpretador / compilador em Java.
As partes lexicais e sintáticas de uma especificação de linguagem usam métodos formais bem conhecidos, como expressões regulares e BNF. A semântica é definida com gramáticas de atributos. É uma plataforma independente escrito em JAVA.
Os analisadores léxicos, de sintaxe e semânticos podem ser de diferentes tipos e podem operar como independentes.
O LISA suporta apresentações visuais de diferentes estruturas, como autômatos de estados finitos, BNF, árvore de sintaxe, gráfico de dependência, etc.
DIVISÃO DE MÓDULOS
O menu inicial do site do Lisa (home) é bem detalhado sobre o que é o Lisa e o que ele fará, no menu inicial já se têm várias características do compilador e dicas para quem quer se aprofundar mais na ferramenta.
O menu de instalação (installation) também é muito auto explicativo e informa de maneira simples e eficaz como você deve fazer para instalar o programa sem que ocorra erros. LISA suporta várias plataformas, o procedimento de instalação é o mesmo em todas elas.
O menu de fotos (screenshots) também é muito interessante porque mostra uma prévia do programa em si e para finalizar um dos principais menus é o tutorial (tutorial), pois há exemplos e demonstrações de como usar certas funcionalidades.
Abaixo encontra-se um exemplo:
Como podemos observar na figura acima, é mostrado como compilar o idioma. Primeiro é onde se define os atributos, as especificações da parte léxica são definidas com expressões regulares. A partir dessa parte, o LISA gera um scanner (código-fonte Java). E por último a sintaxe (BFN) e especificações semânticas.
PROCESSO DE COMPILAÇÃO
O processo de compilação é composto de análise e síntese. A análise tem como objetivo entender o código fonte e representá-lo em uma estrutura intermediária. A síntese constrói o código objeto a partir desta representação intermediária.
A análise pode ser subdividida ainda em análise léxica, análise sintática, análise semântica e geração de código intermediário. É também conhecida como front end. A síntese pode ter mais variações de um compilador a outro, podendo ser composta pelas etapas de otimização de código e geração de código final (ou código de máquina), sendo somente esta última etapa é obrigatória. É também conhecida como back end.
ANÁLISE LÉXICA
A parte léxica
...