Construção de um analisador léxico e sintático para a linguagem x++ fazendo uso das ferramenta jflex e cup
1359 palavras
6 páginas
Construção de um Analisador Léxico e Sintático para aLinguagem X++ fazendo uso das ferramenta JFlex e CUP
Edir Herison Lobato Navegante¹, Igor Murilo Dias², Karleno dos Reis Ribeiro³, Marcelo Matos³
1Centro de Ciências Exatas e Tecnologia – Universidade da Amazônia (UNAMA)
Bacharelado em Ciência da Computação
Belém – PA – Brasil
edir_h, marcelo_matos_colares, murilodias18{@hotmail.com}, karleno13@bol.com.br
1. Introdução
Nos dias atuais os computadores já sofreram grandes mudanças principalmente na parte de hardware onde componentes diminuíram de tamanho e aumentara seu desempenho de uma formar incrível.
Porem na área os computadores ainda não saíram de sua base de seqüência dos 0s e 1s o que torna quase impossível de se trabalhar com linguagem de maquina e para superar esse problema foram criadas linguagens de alto nível.
Para fazer a transição de linguagem de alto nível para a de maquina é necessário o uso de um compilador ou um interpretador onde os dois têm a função de traduzir de linguagem de alto nível para a de maquina.
Na busca de compreender como funciona e como se faz para construir um compilador foi utilizado as ferramentas JLex e JCup onde o primeiro faz a analise léxica e ou outra a sintática, porem ainda faltam a analise semântica e a síntese.
Com base no livro Como Construir um Compilador utilizando ferramentas Java de Marcio Delamaro onde ele especifica uma linguagem denominada X++ e com essa linguagem foram feitas as regras léxicas e sintáticas juntamente com o Jlex e JCup.
2. Definição da linguagem Para descrever a linguagem X++ [DELAMARO 2004 pg 15-24], no livro há duas opções de notação a BNF (Formalismo de Backus–Naur) e através de grafo sintático. Optamos por usar a notação BNF utilizado para simplificar a descrição de linguagens livres de contexto. Linguagem em notação BNF
<program> [<classlist>]
<classlist> (<classdecl>)+
<classdecl> “class” “ident” [“extends” “ident”]