Instrumentação Comportamental e Visualização Dinâmica de Rastro (Fluxogramas, Complexidade Empírica e Chamadas Recursivas)
Execução instrumentada em sandbox com geração automática de árvores de recursão, curvas empíricas T(N) e fluxogramas explicáveis
Código: TCC 11 · Trilha: Trilha 3: Análise Estática e Linguagens · Status: Disponível · Modalidade: Sistemas / Análise Dinâmica + Visualização · Perfil: Individual · Complexidade: Média–Alta · Regime Ético: Sem CEP (Computacional)
1. Contexto e Problema
Para estudantes de CS1/CS2, entender por que seu código entrou em loop infinito, estourou a pilha de recursão (RTE/SIGSEGV) ou exibiu comportamento \(O(2^n)\) em vez de \(O(n)\) é muito difícil olhando apenas para um veredito opaco de TLE ou WA. O documento arquivado apendices/arquivo-editorial/cap04-implementacao-detalhada.tex previu originalmente os modos Instrumentation Run (geração reversa de diagramas/fluxogramas de execução) e Behavioral Inspection (inspeção de laços aninhados e chamadas recursivas), removidos da tese por extrapolarem o baseline caixa-preta.
2. O que será feito (Objetivos Técnicos e Escopo)
- Desenvolver um módulo seguro de instrumentação leve em sandbox (ex.:
sys.settracecontrolado em Python ou instrumentação/contadores em C/C++) com limite estrito de sobrecarga de memória, tempo e tamanho de rastro; - Capturar eventos estruturais de execução: árvore de chamadas recursivas (profundidade máxima e chamadas redundantes), contagem de iterações por laço em função do tamanho da entrada \(N\) (ajuste empírico da ordem de crescimento para cenários
PERFORMANCE) e trilha resumida de estados; - Gerar automaticamente artefatos visuais explicáveis (diagramas Mermaid/SVG de árvore de recursão, gráfico empírico \(T(N)\) ou fluxograma simplificado da execução que falhou) consumíveis na interface do juiz;
- Avaliar a sobrecarga de execução (overhead em tempo e memória), proteção contra fork-bombs / estouro de logs e precisão da inferência empírica de complexidade em problemas de CS2.
3. Perguntas para você refletir
Se você se identifica com as questões abaixo, este tema pode ser uma boa escolha:
- Como limitar o volume de eventos coletados durante um loop infinito ou recursão profunda para que a instrumentação não trave o próprio JudgeHost?
- Como sumarizar uma árvore de chamadas com milhares de nós em um diagrama compacto que realmente ajude o estudante a enxergar subproblemas repetidos (como em Fibonacci ingênuo)?
- Qual modelo de regressão empírica distingue melhor \(O(n)\), \(O(n \log n)\), \(O(n^2)\) e \(O(2^n)\) sobre pequenas variações de \(N\)?
4. Divisão Sugerida (TCC 1 e TCC 2)
- TCC 1: Estudo de ferramentas de tracing e visualização de execução (estilo Python Tutor adaptado a juízes em lote), projeto de segurança/limites e formato estruturado de rastro.
- TCC 2: Implementação do Instrumentation Run / Behavioral Inspection, gerador visual (Mermaid/SVG) e benchmark de overhead e precisão assintótica no Corpus WOKDEX.
5. Entregáveis e Métricas de Avaliação
6. Pré-requisitos e Tecnologias Sugeridas
- Base necessária: Sistemas, Análise de Algoritmos (complexidade assintótica), Python e/ou C++ e visualização web.
- Tecnologias e conceitos envolvidos:
sys.settrace/ LLVM passes / GDB scripting, regressão assintótica (numpy/scipy), Mermaid/SVG/D3.js, Linux sandboxing.
7. Origem e Ponto de Partida
- Origem na pesquisa WOKDEX:
apendices/arquivo-editorial/cap04-implementacao-detalhada.tex(§ Run Scripts — especificações originais de Instrumentation Run e Behavioral Inspection);cap04-metodologia.texeapendices/docs/wok-format/RUN_SCRIPTS.pt.md.
- Consulte também o guia de Metodologia e Ética.
8. Como demonstrar interesse
Antes de agendarmos uma conversa, prepare respostas curtas para:
- Por que esse tema chamou sua atenção?
- Qual linguagem alvo e artefato visual (árvore de recursão, fluxograma ou estimador empírico \(T(N)\)) mais desperta seu interesse?
- Qual sua disponibilidade semanal estimada para o TCC?