Skip to content

Semana 7 – Análise Semântica: Tipos e Escopo

Na sétima semana, integramos a análise semântica ao compilador, adicionando verificação de tipos e escopo, além de aprimorar a manipulação da AST, utilizando Flex e Bison.

Atividades Realizadas

Durante a semana, o foco foi garantir a correção semântica do código analisado, detectando erros de declaração, tipos e escopo.

As principais atividades desenvolvidas foram:

  • Verificação de declaração de variáveis: o compilador passou a identificar o uso de variáveis não declaradas.
  • Detecção de redeclaração: implementamos mecanismos para impedir que uma variável seja declarada mais de uma vez.
  • Verificação de compatibilidade de tipos: o parser agora detecta atribuições e operações com tipos incompatíveis.
  • Anotação da AST com tipos: a árvore sintática abstrata passou a registrar informações de tipo para cada nó.
  • Testes automatizados: utilizamos arquivos de teste para validar casos de sucesso e erro, garantindo robustez na análise semântica.

Essas atividades fortaleceram a base para a geração de código e a evolução do compilador.

Compilando e executando o exemplo

  1. Gerar os arquivos necessários
    Dentro da pasta src: bash make
  2. Isso executa o Bison, o Flex e o compilador C, gerando o executável parser.

  3. Executar o programa
    bash ./parser

  4. Digite comandos e expressões, pressionando Ctrl+D (Linux/macOS) para finalizar a entrada.

  5. Testes automatizados

  6. Para rodar os testes automáticos: bash ./run_tests.sh
  7. Os arquivos de teste cobrem casos válidos e inválidos de declaração, atribuição e tipos.

  8. Verificar a saída

  9. O programa exibe mensagens de sucesso ou erro conforme a análise semântica.

  10. Limpar arquivos gerados
    Para remover arquivos intermediários e o executável: bash make clean