Plano de Sprints para Compilador Python-C
Informações Gerais
Disciplina: FGA0003 - Compiladores 1
Semestre: 2025/1
Professor: Dr. Sergio Antônio Andrade de Freitas
Projeto: Compilador de Python para C
Entregas Principais:
- Ponto de Controle P1: 30/04/2025
- Ponto de Controle P2: 04/06/2025
- Entrega Final: 27/06/2025
- Entrevistas Finais: 30/06/2025 e 02/07/2025
Membros da Equipe
Filipe | Tiago | Isabelle da Costa | João Pedro | João Pedro |
Visão Geral das Sprints
Sprint | Período | Foco | Entregas | Status |
---|---|---|---|---|
1 | 24/03 - 09/04 | Preparação e Análise Léxica | Analisador Léxico Funcional | ✅ Finalizada |
2 | 10/04 - 28/04 | Análise Sintática | Parser e P1 | ✅ Finalizada |
3 | 01/05 - 14/05 | Representação Interna | AST e Tabela de Símbolos | ✅ Finalizada |
4 | 15/05 - 02/06 | Análise Semântica | Verificador Semântico e P2 | ✅ Finalizada |
5 | 05/06 - 18/06 | Geração de Código | Gerador de Código C | ✅ Finalizada |
6 | 19/06 - 27/06 | Refinamento e Testes | Compilador Completo | ✅ Finalizada |
7 | 28/06 - 09/07 | Apresentação e Fechamento | Documentação Final e Entrevista | ✅ Finalizada |
Detalhamento das Sprints
Sprint 1 (24/03 a 09/04)
-
Objetivos Principais
- [x] Formar as equipes e organizar o ambiente de trabalho (configurar repositórios, ferramentas, Flex, Bison etc.).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Definir a linguagem-fonte do compilador (sintaxe e semântica básica).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Elaborar a primeira versão da gramática formal (livre de contexto).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Formar as equipes e organizar o ambiente de trabalho (configurar repositórios, ferramentas, Flex, Bison etc.).
-
Principais Entregas
- [x] Documento inicial descrevendo a linguagem (tokens, estruturas, exemplos de código).
- Responsáveis: João Pedro Costa (johnaopedro)
- [x] Protótipo de gramática reconhecida pelo Bison (ainda não funcional, mas já planejada).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Ambiente configurado e testado (cada membro deve conseguir compilar e rodar um “hello world” do Flex/Bison).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Documento inicial descrevendo a linguagem (tokens, estruturas, exemplos de código).
-
Tarefas e Atividades
- [x] Definir o escopo do compilador.
- Responsáveis: todos
- [x] Configurar repositório e adicionar todos os membros.
- Responsáveis: todos
- [x] Configurar ferramentas: Flex, Bison, compilador C/C++.
- Responsáveis: todos
- [x] Criar gramática inicial no Bison e arquivo de regras léxicas no Flex.
- Responsáveis: todos
- [x] Revisar e atualizar a documentação do projeto.
- Responsáveis: todos
- [x] Definir o escopo do compilador.
Sprint 2 (10/04 a 30/04)
-
Objetivos Principais
- [x] Concluir a análise léxica (Flex) e iniciar a análise sintática (Bison).
- Responsáveis: todos
- [x] Implementar identificação de tokens e testar o reconhecimento básico da linguagem.
- Responsáveis: todos
- [x] Preparar o material para o Ponto de Controle P1.
- Responsáveis: todos
- [x] Concluir a análise léxica (Flex) e iniciar a análise sintática (Bison).
-
Principais Entregas
- [x] Analisador léxico funcional (arquivo .l completo).
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Primeiras regras sintáticas implementadas no arquivo .y.
- Responsáveis: João Pedro Costa (johnaopedro)
- [x] Formulário de apresentação do P1 preenchido até 28/04.
- Responsáveis: João Pedro Costa (johnaopedro)
- [ ] Apresentação no dia 30/04.
- Responsáveis: Filipe, Tiago, Isabelle, João Pedro Costa (johnaopedro), João Pedro
- [x] Analisador léxico funcional (arquivo .l completo).
-
Tarefas e Atividades
- [x] Finalizar as expressões regulares no Flex.
- Responsáveis: João Pedro Costa (johnaopedro)
- [x] Iniciar o parser no Bison.
- Responsáveis: João Pedro Costa (johnaopedro)
- [x] Testar analisador léxico e parser inicial.
- Responsáveis: João Pedro Costa (johnaopedro)
- [ ] Preparar slides/demonstrativo para o P1.
- Responsáveis: Professor providenciou.
- [x] Preencher o formulário do P1.
- Responsáveis: João Pedro Costa (johnaopedro)
- [x] Finalizar as expressões regulares no Flex.
Sprint 3 (01/05 a 14/05)
-
Objetivos Principais
- [x] Evoluir o analisador sintático com novas produções gramaticais.
- Responsáveis: Tiago, Isabelle
- [x] Iniciar a estrutura interna do compilador (árvore sintática, tabela de símbolos).
- Responsáveis: Filipe, João Pedro
- [x] Dar os primeiros passos na análise semântica.
- Responsáveis: Tiago, João Pedro Costa (johnaopedro)
- [x] Evoluir o analisador sintático com novas produções gramaticais.
-
Principais Entregas
- [x] Parser com cobertura mais ampla da gramática.
- Responsáveis: Tiago, Isabelle
- [x] Estrutura de dados (AST e tabela de símbolos) definidas e parcialmente implementadas.
- Responsáveis: Filipe, João Pedro
- [x] Analisador semântico inicial identificando erros básicos.
- Responsáveis: Tiago, João Pedro Costa (johnaopedro)
- [x] Parser com cobertura mais ampla da gramática.
-
Tarefas e Atividades
- [x] Estender as regras gramaticais no Bison.
- Responsáveis: Tiago, Isabelle
- [x] Criar e popular a tabela de símbolos.
- Responsáveis: Filipe, João Pedro, João Pedro Costa (johnaopedro)
- [x] Construir a AST.
- Responsáveis: Filipe, João Pedro, João Pedro Costa (johnaopedro)
- [x] Implementar verificação de tipos e escopo simples.
- Responsáveis: Tiago, João Pedro Costa (johnaopedro)
- [x] Revisar e atualizar a documentação do projeto.
- Responsáveis: todos
- [x] Estender as regras gramaticais no Bison.
Sprint 4 (15/05 a 04/06)
-
Objetivos Principais
- [x] Concluir análise semântica principal.
- Responsáveis: todos
- [x] Implementar a geração de código intermediário.
- Responsáveis: todos
- [x] Preparar o ponto de controle P2.
- Responsáveis: todos
- [x] Concluir análise semântica principal.
-
Principais Entregas
- [x] Analisador semântico robusto.
- Responsáveis: todos
- [x] Módulo de geração de código intermediário.
- Responsáveis: todos
- [x] Formulário do P2 preenchido até 02/06.
- Responsáveis: todos
- [x] Apresentação do ponto de controle P2 em 04/06.
- Responsáveis: todos
- [x] Analisador semântico robusto.
-
Tarefas e Atividades
- [x] Refinar a análise semântica.
- Responsáveis: todos
- [x] Criar gerador de código intermediário.
- Responsáveis: todos
- [x] Configurar testes para instruções intermediárias.
- Responsáveis: todos
- [x] Preparar apresentação P2.
- Responsáveis: todos
- [x] Refinar a análise semântica.
Sprint 5 (05/06 a 25/06)
-
Objetivos Principais
- [x] Introduzir e testar otimizações no código intermediário.
- Responsáveis: todos
- [x] Implementar a geração de código final.
- Responsáveis: todos
- [x] Realizar testes integrados e correções de bugs.
- Responsáveis: todos
- [x] Entregar o compilador final até 27/06.
- Responsáveis: todos
- [x] Introduzir e testar otimizações no código intermediário.
-
Principais Entregas
- [x] Módulo de otimização básico.
- Responsáveis: todos
- [x] Módulo de geração de código final.
- Responsáveis: todos
- [x] Compilador “rodando de ponta a ponta”.
- Responsáveis: todos
- [x] Módulo de otimização básico.
-
Tarefas e Atividades
- [x] Projetar e implementar otimizações simples.
- Responsáveis: todos
- [x] Criar tradutor final.
- Responsáveis: todos
- [x] Testar em múltiplos programas de exemplo.
- Responsáveis: todos
- [x] Entregar o compilador até 27/06.
- Responsáveis: todos
- [x] Projetar e implementar otimizações simples.
Sprint 6 (26/06 a 09/07)
-
Objetivos Principais
- [ ] Realizar as entrevistas finais.
- Responsáveis: todos
- [x] Ajustar eventuais pendências do compilador.
- Responsáveis: todos
- [x] Concluir a documentação e finalizar a disciplina.
- Responsáveis: todos
- [ ] Realizar as entrevistas finais.
-
Principais Entregas
- [ ] Apresentação do compilador nas entrevistas.
- Responsáveis: todos
- [ ] Correções finais e documentação completa.
- Responsáveis: todos
- [ ] Apresentação do compilador nas entrevistas.
-
Tarefas e Atividades
- [ ] Entrevistas de entrega.
- Responsáveis: todos
- [ ] Corrigir issues identificadas.
- Responsáveis: todos
- [ ] Documentar o projeto.
- Responsáveis: todos
- [ ] Entrevistas de entrega.