Escolar Documentos
Profissional Documentos
Cultura Documentos
programao C
Leandro da Cruz Farias1 , Raimundo Corra de Oliveira1
1
Escola Superior de Tecnologia Universidade do Estado do Amazonas (UEA)
Av. Darcy Vargas, 1200, Parque 10 de Novembro 69.065.020 Manaus AM Brasil
{leandro.da.cruz.farias,rcorrea.oliveira}@gmail.com
1. Introduo
O compilador o programa responsvel pela leitura de um programa, que est escrito em
um linguagem de origem, e pela traduo deste para um programa escrito em uma lingua-
gem alvo, segundo [Alfred V. Aho and Ullman 1995]. Outra funo importante consiste
em informar o programador dos erros encontrados no programa fonte.
A compilao dividida em duas partes: anlise e sntese. A anlise compreende
a anlise lxica, sinttica e semntica. J a sntese encarregada de gerar o algoritmo na
linguagem alvo.
A anlise lxica consiste em identificar os caracteres que fazem parte da gramtica
da linguagem. A leitura dos caracteres gera um agrupamento de tokens, que so as pala-
vras reservadas da linguagem. Enquanto que a anlise sinttica responsvel por verificar
a ordenao dos tokens para garantir a coeso entre eles. E, por ltimo, tem-se a anlise
semntica, que valida se uma instruo est de acordo com a semntica da linguagem,
alm de obter os tipos dos dados, identificar os operadores e operandos de expresses que
sero utilizados na gerao do cdigo.
Diante disso, pretende-se desenvolver um compilador que realize a leitura de algo-
ritmos escritos em linguagem Portugol e os traduza para algoritmos escritos em linguagem
C.
2. Objetivo Geral
Desenvolver um compilador que faa a traduo de algoritmos escritos em Portugol para
algoritmos em linguagem C.
2.1. Objetivos Especficos
Identificar todas as palavras reservadas da linguagem Portugol;
Utilizar a ferramenta Flex para gerar o analisador lxico;
Utilizar a ferramenta Bison para gerar o analisador sinttico;
Implementar o analisador semntico;
Implementar o tratamento de erros.
3. Justificativa
Com o intuito de criar um compilador, preciso aprofundar-se nas reas de conhecimento
do curso de Engenharia de Computao, essencialmente nas disciplinas de Compiladores
e Fundamentos de Engenharia de Computao II.
A disciplina de Compiladores agregou conhecimentos relacionados ao uso das
ferramentas Flex e Bison. Utilizando o Flex possvel gerar o analisador lxico de acordo
com as regras definidas pela gramtica da linguagem de origem.
E o analisador sinttico gerado com o Bison por meio da definio da sintaxe da
linguagem.
Ao combinar estas duas ferramentas, possvel analisar se cada caractere de um
programa vlido, validar a coeso destes caracteres e verificar a semntica presente em
cada instruo. E durante cada fase dessa anlise, a deteco de erros executada por
meio do tratador de erros, segundo [Alfred V. Aho and Ullman 1995]. Alm disso, uma
tabela de smbolos criada para que os tokens e seus atributos sejam armazenados, e
assim seja possvel utilizar estes dados para a validao do cdigo.
Vale ressaltar que a tabela de smbolos uma estrutura de dados, sendo assim de
suma importncia o uso dos conhecimentos adquiridos na disciplina Estruturas de Dados.
Em vista disso, o projeto deste compilador requer conhecimentos relevantes do
curso em questo e prope uma ferramenta de compilao que ajude a entender as sintaxes
do Portugol e C.
4. Metodologia
Pretende-se usar a ferramenta Flex para gerar o analisador lxico, assim ser preciso de-
clarar os tokens da linguagem Portugol e definir as aes que sero executadas ao identi-
ficar um token.
Aps a implementao do analisador lxico, ser a vez de criar o analisador sin-
ttico com a ferramenta Bison. A primeira parte consiste em definir quais sero os iden-
tificadores que correspondem aos tokens inseridos no analisador lxico. Aps isso sero
implementadas as regras de sintaxe da linguagem Portugol. A medida que as regras so
validadas, os tokens so armazenados na tabela de smbolos, que consistir em um tabela
hash.
E com base na anlise sinttica, a anlise semntica ser realizada para confirmar
a validade semntica da instruo e para gerar o cdigo-alvo. Vale ressaltar, que em todas
estas fases de anlise ser necessrio identificar os erros e inform-los ao usurio, por isso
um tratador de erros ser construdo.
Simultaneamente a anlise sinttica e semntica, as instrues so traduzidas para
a linguagem alvo, se contemplarem as regras claro, e armazenadas em uma estrutura de
dados do tipo fila, assim, aps o trmino da leitura do programa de origem, os elementos
da fila sero retirados um a um para que o contedo de cada um seja escrito em um novo
arquivo com extenso .c, que caracterizada um documento escrito na linguagem C.
Diante deste processo, ser possvel traduzir um programa escrito em Portugol
para um programa em C.
5. Cronograma
As atividades a serem realizadas no processo de desenvolvimento deste trabalho se en-
contram detalhadas na Figura 1.
Ms - 2014
Definir os identificadores que correspondem aos tokens inseridos no analisador lxico 0% complete
28/03