/facc

FACC - Ferramenta de Apoio a Construcao do Compiladores

Primary LanguageC++

FACC - Ferramenta de Apoio a Construção de Compiladores

Essa ferramenta,de posse de uma gramática livre de contexto, produz arquivos contendo código fonte em C++ que correspondem ao esqueleto de um compilador.

Como assim?

Tomando como entrada a gramática fornecida, que especifica as produções de uma linguagem (como a linguagem Pascal), essa ferramenta gera código fonte que permite o reconhecimento da linguagem.

O código gerado inclui um analisador sintático LALR(1), o esqueleto de um analisador léxico já integrado ao analisador sintático, além do esqueleto de um analisador semântico, que contém métodos correspondentes às produções da gramática.

A ferramenta gera ainda o código fonte do compilador, que faz a chamada para a análise sintática, e em seguida a chamada para a análise semântica do código fonte escrito na linguagem reconhecida pelo compilador.

E como surgiu essa ferramenta?

O FACC surgiu na Universidade de Brasília, e foi bastante utilizado na disciplina de Compiladores como ferramenta de apoio para construção de Tradutores.

Foi graças a ele que nasceu o compilador Pascalzim, que usa na análise sintática e na análise semântica os fontes gerados por essa ferramenta.

E depois?

Os fontes da ferramenta foram deixados na UnB, mas infelizmente não houve continuidade na evolução da ferramenta.

Como era uma ferramenta essencial para o desenvolvimento do Pascalzim, consegui entrar em contato com os desenvolvedores para pegar o código fonte da ferramenta. Então, depois de fazer um refatoramento no código, migrando-o de C para C++, e adicionando novas funcionalidades, foi criada essa versão aqui disponibilizada.

Acesse o arquivo leiame.txt para maiores informações.