Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Trabalho final de compiladores 2024-1

i-JSS/Compilador-Pascal-MEPA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Compilador de Pascal Simplificado para MEPA

Aluno Matrícula
André Emanuel Bispo da Silva 221007813
João Antonio Ginuino carvalho 221008150

Sobre

Este projeto implementa um compilador completo para a linguagem Pascal Simplificado, gerando como saída código intermediário para a máquina hipotética MEPA.

O compilador é dividido em três etapas principais, cada uma implementada em um arquivo separado:

  • Análise Léxicalexico.cpp: Responsável por ler o código-fonte e identificar os tokens (palavras-chave, identificadores, números, símbolos, etc.).
  • Análise Sintáticasintatico.cpp: Utiliza os tokens da análise léxica para verificar se a estrutura do programa segue as regras da gramática da linguagem.
  • Compiladorcompilador.cpp: Integra as etapas anteriores e gera o código MEPA correspondente ao programa Pascal Simplificado.

O compilador possui suporte a estruturas de repetição (while, for), funções e procedimentos (function, procedure), conforme a sintaxe do Pascal Simplificado.


Instalação

  • Linguagem: C++11
  • Dependências: Nenhuma biblioteca externa é necessária.

Para compilar os arquivos, utilize um compilador como o g++:

g++ -std=c++11 lexico.cpp -o lexico
g++ -std=c++11 sintatico.cpp -o sintatico
g++ -std=c++11 compilador.cpp -o compilador

Uso

Cada arquivo pode ser executado de forma independente, permitindo realizar as etapas do processo de compilação separadamente.

Execute os binários gerados, passando o arquivo-fonte Pascal como argumento:

Análise Léxica

./lexico programa.pas

Análise Sintática

./sintatico programa.pas

Compilação (Geração de código MEPA)

./compilador programa.pas

About

Trabalho final de compiladores 2024-1

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published