Skip to content

Gabriel-V-Maia/Interpretador-Portugol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interpretador Portugol

Projeto focado no desenvolvimento de um interpretador e compilador para a linguagem Portugol, escrito inteiramente em C. O sistema realiza o processamento completo do código, desde a análise inicial até a geração de uma Árvore de Sintaxe Abstrata (AST) com suporte para transpilação para C.

A sintaxe é inspirada com o padrão do Portugol-Webstudio, porém sofreu modificações.

A logo foi criada por Willian Guedes

Aprenda portugol

Estou documentando a linguagem aqui!

Exemplos de Código

Sequência de Fibonacci

programa {
  inteiro funcao fib(inteiro n) {
    se (n <= 1) {
      retorne n
    }
    retorne fib(n - 1) + fib(n - 2)
  }
  nulo funcao inicio() {
    escreva("${fib(10)}\n")
  }
}

Cálculo de Fatorial

programa {
  inteiro funcao fat(inteiro n) {
    se (n == 0) {
      retorne 1
    }
    retorne n * fat(n - 1)
  }
  nulo funcao inicio() {
    escreva("${fat(5)}\n")
  }
}

Instruções de Uso

Para compilar o projeto e executar os exemplos:

# Compilação do interpretador
make

# Execução de um script Portugol
./build/portugol examples/fibbonaci.por

# Execução com visualização de logs e AST
./build/portugol -d examples/fatorial.por

Organização de Diretórios

  • build: Arquivos binários e resultados de compilação.
  • examples: Scripts de teste em linguagem Portugol.
  • libs: Bibliotecas padrão e módulos externos.
  • src: Código fonte organizado por módulos (Lexer, Parser, Codegen).
  • src/include: Definições de cabeçalhos e interfaces.

Metas de Implementação

  • Finalização do Parser para suporte total à gramática.
  • Estabilização do sistema de importação de arquivos.
  • Integração automática com o GCC para compilação final.
  • Criação de biblioteca padrão para entrada e saída de dados.
  • Implementação de suite de testes automatizados para a AST.

Contribuindo

Contribuições são bem-vindas! Veja o CONTRIBUTING.md para saber como configurar o ambiente, o fluxo de PRs e as convenções do projeto.

Licença

Este software é distribuído sob a Licença MIT. Desenvolvido por Gabriel Vinícius da Maia.

About

Um interpretador de portugol feito em C

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages