Planejamento do Projeto
Esta seção apresenta o plano de sprints para o desenvolvimento do Interpretador, estruturado de acordo com a metodologia Scrum. Cada sprint apresenta os objetivos, entregas, tarefas e observações de cada ciclo. O planejamento busca organizar o fluxo de trabalho, garantir a evolução incremental do sistema e facilitar a integração entre os membros da equipe.
📌 Sprint 1
Objetivos
- Formar equipes e organizar ambiente (repositório, ferramentas, Flex/Bison);
- Definir linguagem-fonte e gramática inicial.
Entregas
- Documento inicial com tokens e exemplos;
- Protótipo de gramática para Bison;
- Ambiente configurado (hello world Flex/Bison).
Tarefas
- Criar repositório e adicionar membros (incluir sergioaafreitas);
- Criar
.l
e.y
mínimos; - Definir sintaxe básica em
docs/especificacao_linguagem.md
.
Observações
- Daily rápida nas quartas-feiras;
- Familiarizar-se com Git/GitHub.
📌 Sprint 2
Objetivos
- Completar análise léxica (Flex);
- Implementar regras básicas do parser (Bison).
Entregas
.l
completo; primeiras regras em.y
.
Tarefas
- Finalizar regexs no
.l
(espaços, comentários); - Regras sintáticas básicas em
.y
; - Testes léxicos/sintáticos com exemplos.
📌 Sprint 3
Objetivos
- Construir AST; iniciar análise semântica básica;
- Melhorar mensagens de erro.
Entregas
- Estruturas/classes da AST;
- Módulo semântico inicial;
- Parser que constrói AST.
Tarefas
- Implementar ações no
.y
para criar nós da AST; - Criar tabela de símbolos;
- Tratar erros básicos.
📌 Sprint 4
Objetivos
- Implementar interpretação da AST (execução direta);
- Aprimorar a análise semântica, tratando construções mais complexas;
Entregas
- Módulo interpretador capaz de executar instruções;
- Análise semântica mais robusta;
Tarefas
- Criar a lógica de interpretação recursiva (
interpretNode()
/ métodoseval()
dos nós); - Consolidar estruturas de controle (
if
,while
, etc.); - Testar o interpretador com programas de exemplo.
📌 Sprint 5
Objetivos
- Adicionar otimizações opcionais (ex.: simplificação de expressões constantes);
- Incluir recursos adicionais (funções, arrays, strings);
- Realizar testes integrados e preparar entrega final.
Entregas
- Interpretador ampliado, com otimizações e funcionalidades extras;
- Testes de integração;
- Versão final pronta para entrega via Teams.
Tarefas
- Implementar otimizações simples (constant folding, remoção de nós redundantes);
- Estender a linguagem com novos recursos, se houver tempo;
- Testar intensivamente e entregar o projeto final.
📌 Sprint 6
Objetivos
- Participar das entrevistas finais com o professor;
- Corrigir pendências/bugs emergentes;
- Concluir a documentação e encerrar a disciplina.
Entregas
- Entrevistas de entrega do projeto final;
- Documentação completa (README, manual de uso, explicações sobre a AST e a execução);
- Ajustes finais (caso o professor detecte problemas).
Tarefas
- Preparar-se para as entrevistas: cada membro domina parser, AST, semântica e interpretador;
- Corrigir falhas apontadas;
- Finalizar documentação e organizar exemplos de uso.