Ir para o conteúdo

Dificuldades do Projeto

Durante o desenvolvimento do Interpretador, a equipe enfrentou alguns desafios importantes que impactaram diretamente nas decisões de projeto e na organização das entregas.


Compilador x Interpretador

Um dos primeiros debates do grupo foi decidir se seria implementado um compilador ou um interpretador.

  • O compilador permitiria otimizações mais avançadas e geração de código eficiente, mas demandaria mais esforço e conhecimento em estágios como análise semântica, geração de código intermediário e final.
  • O interpretador, por outro lado, se mostrou mais viável para os prazos da disciplina, já que possibilita a execução direta da AST (Abstract Syntax Tree), facilitando a validação das construções da linguagem.

➡️ Após discussões, a equipe optou por seguir com o interpretador.


Escolha da Linguagem de Implementação

Outro ponto de dificuldade foi escolher a linguagem para implementar o projeto.
As opções levantadas foram: Python e C.

  • O Python oferecia facilidade de prototipagem, mas menor integração com Flex/Bison.
  • O C, apesar de exigir maior atenção à manipulação de memória e estruturas, mostrou-se o mais adequado por ser compatível com Flex/Bison e alinhar com os objetivos da disciplina.

➡️ A decisão final foi implementar em C.


Ferramentas e Integração

  • Configurar corretamente o ambiente com Flex e Bison gerou dificuldades iniciais, especialmente para a equipe que não havia trabalhado antes com essas ferramentas.
  • A equipe precisou alinhar versões, corrigir problemas de instalação e entender a estrutura mínima de arquivos .l e .y.

Organização em Equipe

  • O trabalho em grupo também trouxe o desafio de dividir responsabilidades de forma equilibrada.
  • Nem todos tinham a mesma experiência com Git/GitHub, o que gerou dificuldades no início com versionamento e integração de código.

Conclusão

Apesar das dificuldades, esses desafios foram fundamentais para o aprendizado da equipe, que conseguiu avançar nas tomadas de decisão, melhorar a colaboração e desenvolver uma solução funcional dentro do prazo da disciplina.