Diseñar un análisis de punteros para una base de código C++ legacy
Visión general
De qué trata este proyecto.
Implementa un análisis de punteros basado en Andersen (inclusion-based) o Steensgaard (unification-based) sobre LLVM IR. Justifica la elección con el trade-off precisión vs escalabilidad para 200 KLOC. Integra con clang para compilar el módulo a IR. Detecta 2 clases de bug: use-after-free intraprocedural y aliasing inesperado que rompe optimizaciones. Mide tasa de falsos positivos manualmente sobre los primeros 50 hallazgos. Compara con clang-static-analyzer y CodeChecker. Entrega el código del análisis, el informe de hallazgos con triage, un informe técnico de 9 páginas y una recomendación: extender al resto del codebase o limitar al módulo actual.
El Briefing
Lo que harás y lo que demostrarás.
Diseñar e implementar análisis de punteros sobre un módulo de 200 KLOC C++ para detectar aliasing y use-after-free con tasa de falsos positivos aceptable.
Earning criteria — what you'll demonstrate
- Implementar análisis de punteros con un algoritmo clásico (Andersen o Steensgaard)
- Trabajar sobre LLVM IR a nivel de paso de análisis
- Medir falsos positivos con triage manual disciplinado
- Decidir entre precisión y escalabilidad con datos reales
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Implementar análisis de punteros sobre LLVM IR para una base de código real es la credencial que abre roles en developer tools, compiladores y empresas con C++ a gran escala.
Este proyecto afina
- pointer-analysis
- static-analysis
- llvm
Arquitecto de Sistemas
Arquitectos con experiencia en análisis estático defienden mejor decisiones sobre lenguaje (C++ vs Rust) en bases de código de larga vida.
Este proyecto afina
- program-analysis
- static-analysis
- c-programming