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 |