Backlog do Projeto
O objetivo deste projeto é construir um compilador que recebe um programa escrito em um subconjunto de JavaScript e produz código Python equivalente e funcionalmente correto. O projeto é desenvolvido no contexto da disciplina de Compiladores 1, aplicando a metodologia ágil Scrum com sprints semanais. Todas as decisões técnicas são documentadas e justificadas ao longo do desenvolvimento.
Esta página consolida todas as issues do projeto, correlacionando-as com as sprints, seu status atual, prioridade e link direto para o GitHub.
Resumo por Sprint
| Sprint | Período | Objetivo Principal | Issues | Status |
|---|---|---|---|---|
| Sprint 1 | 25/03 a 01/04 | Organização do grupo e estudo de compiladores | Concluída | |
| Sprint 2 | 02/04 a 08/04 | Decisões técnicas e analisador léxico | #2, #6 | Concluída |
| Sprint 3 | 09/04 a 15/04 | Analisador sintático, testes e tabela de símbolos | #1, #3, #5 | Concluída |
| Sprint 4 | 16/04 a 22/04 | Refinamento de Flex/Bison e ajustes anteriores | #3, #5 | Em andamento |
| Sprint 5 | 23/04 a 29/04 | Continuação do parser e tabela de símbolos | Planejada | |
| Sprint 6 | 30/04 a 06/05 | AST e refinamento da tabela de símbolos | Planejada | |
| Sprint 7 | 07/05 a 13/05 | Geração de código intermediário e otimizações | Planejada | |
| Sprint 8 | 14/05 a 20/05 | Testes finais e validação | Planejada | |
| Sprint 9 | 21/05 a 27/05 | Apresentação e entrega final | Planejada |
Issues por Sprint
Filtre as issues por sprint ou visualize todas de uma vez.
Sprint 1 25/03 – 01/04 Concluída
Entender o projeto, identificar o problema e iniciar organização do grupo, visando estudo de compiladores e interpretadores para escolha do projeto.
Sprint 2 02/04 – 08/04 Concluída
Tomadas as decisões técnicas e início do desenvolvimento, implementando o analisador léxico com Flex.
#2 Implementação do analisador léxico (lexer.l)
Implementação do analisador léxico usando Flex, definindo os tokens para palavras-chave, operadores, literais e identificadores do subconjunto de JavaScript.
#6 Documentação
Produzir e manter a documentação principal: visão geral, pipeline de compilação, estrutura de pastas, tokens planejados, instruções de build/execução/teste e próximos passos. Explicar integração entre lexer.l, parser.y e parser.tab.h
Sprint 3 09/04 – 15/04 Concluída
Implementação do analisador sintático, início dos testes e tabela de símbolos.
#3 Implementação do analisador sintático (parser.y)
Definição da gramática livre de contexto com Bison para o subconjunto de JavaScript. Integração com lexer.l via parser.tab.h.
#5 Estrutura inicial da tabela de símbolos
Criação da estrutura de dados em C para armazenar identificadores, tipos e escopos durante a análise semântica inicial.
#1 Criação de casos de teste léxicos e sintáticos
Elaboração de arquivos de entrada válidos e inválidos para testar o lexer e o parser, cobrindo os casos do subconjunto JavaScript definido.
Sprint 4 16/04 – 22/04 Em andamento
Refinar o uso de Flex e Bison dentro do projeto, e ajustar implementações anteriores.
#3 Implementação do analisador sintático (parser.y)
Definição da gramática livre de contexto com Bison para o subconjunto de JavaScript. Integração com lexer.l via parser.tab.h.
#5 Estrutura inicial da tabela de símbolos
Criação da estrutura de dados em C para armazenar identificadores, tipos e escopos durante a análise semântica inicial.
Sprint 5 23/04 – 29/04 Planejada
Continuação do parser e implementação completa da tabela de símbolos.
Sprint 6 30/04 – 06/05 Planejada
Implementar AST e refinar tabela de símbolos.
Sprint 7 07/05 – 13/05 Planejada
Implementar geração de código Python e otimizações básicas.
Sprint 8 14/05 – 20/05 Planejada
Testes finais com base de casos válidos e inválidos, e polimento geral.
Sprint 9 21/05 – 27/05 Planejada
Apresentação final, entrega e retrospectiva do projeto.