Skip to content

AP 2: auditoria completa, teste diferencial e documentação de entrega - #2

Merged
gblsun merged 3 commits into
mainfrom
ap2-auditoria
Oct 10, 2026
Merged

gblsun merged 3 commits into
mainfrom
ap2-auditoria

Conversation

@gblsun

@gblsun gblsun commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Resumo

Auditoria da AP 2 (analisador semântico) pelos quatro critérios das orientações de entrega, com documentação para a avaliação.

Verificação além dos testes fixos

  • tests/fuzz_semantico.py: teste diferencial com três oráculos:
    • programas aleatórios: Python e C dão saída idêntica, sem crash;
    • programas bem tipados: as duas versões têm de aceitá-los (pega falso positivo);
    • programas com exatamente um erro injetado (SEM001–SEM016): as duas versões têm de reportar só aquele erro (pega falso negativo e cascata).
  • Casos próprios novos: os programas de referência 13.1, 19.1 e 19.2 da especificação.
  • CI em dois ambientes: Ubuntu 22.04 (gcc 11, Python 3.10) e 24.04 (gcc 13, Python 3.12).
  • Job robustez:
    • clang com -Werror;
    • AddressSanitizer + UBSan em todas as 120 entradas de teste;
    • 900 programas gerados;
    • scripts oficiais rodando de /tmp/Avaliação Parcial II/minic compiler em LC_ALL=C;
    • conferência de que o catálogo de testes está atualizado.

Correção

  • O nó Param passa a guardar a posição do nome. Assim, o SEM002 de parâmetro duplicado aponta o nome, como o gabarito faz para variáveis (caso 13). A etapa 2 não muda, porque a AST impressa não mostra posições.

Documentação

  • docs/entrega-ap2.md: página de entrega que liga cada critério (desacoplamento, equivalência, lógica, casos de teste) à evidência correspondente.
  • docs/testes-semanticos.md: os 39 testes com objetivo, código e saída (o item "testes propostos com os respectivos resultados"), gerado pelos próprios arquivos de teste.
  • Atualizados: resultados-etapa3.md, semantica.md, READMEs, etapas.md e PENDENCIAS.md (decisões da AP 2, risco dos CRLF dos gabaritos, itens 1.5, 3.1 e 3.2 resolvidos).
  • Bit de execução em minic.py e nos scripts da AP 2.

Resultados (CI)

Verificação Resultado
scripts oficiais da AP 2, Python e C (nos dois ambientes e na pasta com espaço/acento) 20/20 e 20/20
tests/run_semantic_tests.py 184/184
teste diferencial (C com sanitizers) 900/900
entradas com AddressSanitizer + UBSan 120/120 sem erro
gcc 11, gcc 13, clang 18 com -Werror sem avisos
etapas 1 e 2, exercícios da aula 13 sem regressão

🤖 Generated with Claude Code

gblsun and others added 3 commits October 9, 2026 23:59
…cificação e CI de robustez

- tests/fuzz_semantico.py: programas aleatórios (equivalência C × Python),
  bem tipados (têm de ser aceitos) e com exatamente um erro injetado
  (SEM001-SEM016, têm de reportar só aquele erro)
- casos próprios com os programas 13.1, 19.1 e 19.2 da especificação
- CI: Ubuntu 22.04/gcc 11/Python 3.10 e 24.04/gcc 13/Python 3.12, clang,
  AddressSanitizer/UBSan, e os scripts oficiais da AP 2 numa pasta com
  espaço e acento em locale C

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…auditoria

- docs/entrega-ap2.md: cada critério de correção com a evidência
- docs/testes-semanticos.md: os 39 testes com objetivo, código e saída,
  gerado por tests/gerar_catalogo_semantico.py (o CI confere)
- Param guarda a posição do nome: SEM002 de parâmetro aponta o nome,
  como o gabarito faz para variáveis
- resultados, READMEs, etapas e PENDENCIAS atualizados

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gblsun
gblsun merged commit bc5f9dd into main Oct 10, 2026
6 checks passed
@gblsun
gblsun deleted the ap2-auditoria branch October 10, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant