Pular para conteúdo

Decisões técnicas

1. Estratégia de desenvolvimento incremental

Decisão: priorizar uma entrega incremental com foco em linguagem + léxico + sintático antes de avançar para semântica robusta e interpretação completa.

Motivo:

  • reduz risco de atrasos nas entregas P1 e P2;
  • permite validar rapidamente a base do interpretador;
  • cria fundamento estável para as próximas fases.

2. Uso de Flex e Bison

Decisão: manter Flex para análise léxica e Bison para análise sintática.

Motivo:

  • ferramentas padrão da disciplina;
  • separação clara entre responsabilidades (tokenização e parsing);
  • boa manutenção da gramática e evolução contínua no Kanban.

3. Escopo de linguagem em recorte

Decisão: trabalhar com um subconjunto da linguagem alvo, iniciando por construções essenciais.

Motivo:

  • manter o projeto executável no tempo disponível;
  • priorizar qualidade e testes sobre quantidade de funcionalidades;
  • facilitar depuração em ambiente acadêmico.

4. AST como base do interpretador

Decisão: estruturar ações semânticas no parser para construção progressiva da AST.

Motivo:

  • simplifica etapas futuras de análise semântica e interpretação;
  • evita retrabalho ao sair de parser puramente avaliativo;
  • melhora a organização interna do projeto.

5. Documentação como artefato de engenharia

Decisão: tratar a documentação em docs/ como artefato obrigatório de acompanhamento no Kanban, não apenas material final.

Motivo:

  • aumenta visibilidade do progresso do time;
  • facilita review técnico e alinhamento com o professor;
  • reduz risco de inconsistência entre implementação e planejamento.

6. Ferramental no Windows

Decisão: considerar WinFlexBison no ambiente Windows quando Flex/Bison não estiverem disponíveis nativamente.

Motivo:

  • reduzir bloqueios de setup local;
  • padronizar instruções de execução para o grupo.