Pular para conteúdo

Escopo do Projeto

Este projeto tem como objetivo o desenvolvimento de um compilador acadêmico capaz de traduzir programas escritos em um subconjunto da linguagem C para a linguagem Python, contemplando as principais etapas clássicas do processo de compilação.


Visão Geral

O compilador realiza a leitura de códigos-fonte escritos em C, executando análises léxica, sintática e semântica para validar a estrutura do programa e gerar um código equivalente em Python.

O projeto possui foco educacional, visando aplicar de forma prática os conceitos fundamentais da construção de compiladores.


Escopo Funcional

Categoria Descrição Status
Análise Léxica Reconhecimento de tokens como identificadores, palavras-chave, operadores e literais ✅ Incluído
Análise Sintática Validação da estrutura gramatical do programa com base em regras definidas em Bison ✅ Incluído
Análise Semântica Verificação de tipos, escopo, declarações e uso correto de variáveis ✅ Incluído
Geração de Código Conversão de estruturas válidas da linguagem C para código equivalente em Python ✅ Incluído
Subconjunto da Linguagem C Suporte parcial às estruturas essenciais da linguagem C utilizadas no projeto ⚠️ Parcial
Otimização de Código Aplicação de técnicas de otimização no código intermediário ou final ❌ Não incluído
Interface Gráfica Ambiente visual para interação com o compilador ❌ Não incluído
Múltiplas Linguagens Suporte a linguagens além de C como entrada ou além de Python como saída ❌ Não incluído
Tratamento Avançado de Erros Recuperação automática de erros e mensagens detalhadas de diagnóstico ❌ Não incluído

Subconjunto da Linguagem C

O compilador possui suporte apenas a um subconjunto controlado da linguagem C, incluindo estruturas fundamentais para validação acadêmica do projeto.

Entre os principais elementos suportados estão:

  • Declaração de variáveis
  • Operações aritméticas
  • Operadores relacionais
  • Estruturas condicionais
  • Estruturas de repetição
  • Função principal main
  • Expressões simples

Elementos avançados da linguagem C podem não ser suportados nesta versão do compilador.


Linguagens Envolvidas

Tipo Linguagem
Entrada C (subconjunto)
Saída Python

Fluxo Geral do Compilador

Código em C
     ↓
Análise Léxica
     ↓
Análise Sintática
     ↓
Análise Semântica
     ↓
Geração de Código
     ↓
Código em Python

Contexto de Uso

Este projeto foi desenvolvido para fins acadêmicos na disciplina de Compiladores, com foco na aplicação prática de conceitos relacionados à construção de compiladores e tradutores de linguagem.


Considerações Finais

O escopo foi definido considerando o equilíbrio entre profundidade técnica, viabilidade de implementação e tempo disponível para desenvolvimento, permitindo a construção de um compilador funcional e modular.


Histórico de Versões

Versão Data Descrição Autor(es)
1.0 07/04/2025 Criação do documento Beatriz Lins
1.1 09/04/2025 Refatoração do texto e melhorias estruturais Arthur Fernandes