trabalho compiladores luciane unirp
865 palavras
4 páginas
O que é e qual é o objetivo de cada gerador:Flex:
O Flex é uma framework que auxilia a criação de analisadores léxicos que tem como objetivo reconhecer os padrões léxicos no texto. O Flex é uma evolução mais rápida da framework Lex, por isso o nome Flex (Fast Lex).
O Lex foi desenvolvido por M. E. Lesk e E. Shmidt (Bell Laboratories - AT&T) enquanto que o
Flex é um produto da Free Software Foundation, Inc.
Com o uso do Flex/Lex, o programador não precisa desenvolver manualmente um programa que identifique os padrões de uma entrada, ele apenas necessita especificar os padrões desejados e as ações necessárias para processá-los, para isso esses padrões devem ser especificados através de expressões regulares.
Bison:
O Bison é utilizado para criar analisadores sintáticos, foi desenvolvido para o projeto
GNU e disponível para quase todos os sistemas operacionais, seu objetivo é executar a analise sintática de um código fonte, como entrada recebe a descrição da gramática de uma determinada linguagem e como saída um programa denominado parser. Depois que esse parser for compilado, ele receberá como entrada, códigos fonte da linguagem determinada pela gramática descrita no Bison. O parser executará uma validação no código informando se ele esta sintaticamente correto ou não. O parser serve também na implementação de interpretadores, tradutores e até de compiladores mais sofisticados e completos.
A saída do Flex pode servir de entrada para o parser do Bison, fazendo assim os dois trabalharem juntos.
Explicação das seções que compõe cada gerador:
O arquivo do Flex é dividido em três seções no seguinte formato: declaração %% regras de tradução
%%
procedimentos auxiliares
Na primeira seção, são feita as declarações de variáveis, definições e inclusões de arquivos entre os caracteres %{ }%.
Nesta seção também pode ser definidas expressões regulares para notações não terminais.
A segunda seção, são feita as regras de tradução. Algumas