Skip to content

Compilador desenvolvido para a disciplina de Compiladores

Notifications You must be signed in to change notification settings

cdavieira/compilador

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compilador

O projeto da disciplina de compiladores consiste em (adivinha só) construir um compilador! :)

Etapas para construção do compilador

  1. Desenvolvimento do lexer
  2. Desenvolvimento do parser
  3. Desenvolvimento da semântica da linguagem
  4. Desenvolvimento do sistema de tipos

A etapa 1 foi feita por meio do programa flex, que gera código C que implementa um autômato capaz de identificar os tokens da linguagem.

A etapa 2 foi feita por meio do programa bison, que é responsável por definir a sintaxe da linguagem e implementar as regras semânticas que são aplicáveis (etapa 3).

o bison gera código C capaz de reconhecer linguagens livres de contexto (CFG)

Sobre o parser

Recursos fora do escopo desse parser:

  • struct
  • enum
  • union
  • pointer
  • for
  • operador modulo (%)

Dicionário de termos usados no arquivo de configuração do bison (parser/parser.y)

palavra definição
declarator declaracao de recursos que armazenam estado (variaveis e funcoes)
stmt comandos 'builtin' da linguagem (if, while, ...) + chamada de funcoes
block o bloco de definição de uma função, que pode ter stmts e declarators para variaveis

Referências

About

Compilador desenvolvido para a disciplina de Compiladores

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published