Análisis Semántico y Tabla de Símbolos para un Lenguaje Educativo
Visión general
De qué trata este proyecto.
Implementa la tabla de símbolos con un stack de scopes (global, función, bloque). Recorre el AST con un visitor que rellene la tabla y luego una segunda pasada que verifique tipos en expresiones aritméticas, booleanas y llamadas a funciones. Soporta inferencia básica de tipos para literales y resolución de overload de los 4 operadores aritméticos. Reporta hasta 50 errores semánticos en un solo run sin detenerte al primero — los profesores quieren ver todos los problemas al estudiante de golpe. Entrega 25 programas de prueba (15 válidos, 10 inválidos).
El Briefing
Lo que harás y lo que demostrarás.
Implementar análisis semántico sobre el AST de MiniPascal con tabla de símbolos jerárquica y modo de reporte continuo (no abortar al primer error).
Earning criteria — what you'll demonstrate
- Implementar tablas de símbolos con ámbitos léxicos anidados
- Aplicar comprobación de tipos sobre expresiones en un AST real
- Distinguir errores que permiten continuar de los que requieren abortar
- Diseñar mensajes pedagógicos pensados para estudiantes principiantes
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
Construir análisis semántico real entrena pensamiento estructurado sobre tipos y ámbitos — habilidades que un ingeniero de software aplica en cualquier sistema con reglas de validación complejas, no solo en compiladores.
Este proyecto afina
- semantic-analysis
- type-checking
- ast-traversal
Ingeniero Backend
Diseñar una tabla de símbolos con ámbitos anidados es el mismo patrón que aparece en sistemas de permisos jerárquicos y motores de plantillas — un ingeniero backend con esta base ataca esos problemas con confianza.
Este proyecto afina
- symbol-table
- ast-traversal
- compiler-frontend