Implementar un parser recursivo descendente para expresiones aritméticas
Visión general
De qué trata este proyecto.
Define la gramática (BNF mínimo) para expresiones aritméticas con precedencia correcta y asociatividad de potencia a la derecha. Implementa el tokenizer, el parser recursivo descendente que produce un AST (árbol de sintaxis abstracta) y el evaluador. Maneja errores con mensajes útiles (token inesperado, paréntesis desbalanceado, división por cero). Cubre operadores unarios (-x) y números decimales. Escribe al menos 30 tests con expresiones de los problemas reales del catálogo de la plataforma. Entrega el código, el manual del API, los tests y un breve análisis (2 páginas) explicando por qué un parser recursivo descendente es adecuado para esta gramática.
El Briefing
Lo que harás y lo que demostrarás.
Implementar un parser recursivo descendente y un evaluador para expresiones aritméticas con precedencia, errores claros y tests sobre expresiones reales del catálogo.
Earning criteria — what you'll demonstrate
- Aplicar recursión mutua entre funciones de parsing por nivel de precedencia
- Construir y manipular un AST como abstracción de datos
- Manejar errores con mensajes accionables
- Razonar sobre adecuación de algoritmos a la estructura del problema
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 un parser desde cero es un clásico que demuestra dominio de recursión y abstracción de datos — siempre causa buena impresión en entrevistas.
Este proyecto afina
- recursion
- data-abstraction
- compiler-design
Ingeniero de Backend
Backend que entiende parsers maneja DSLs, validadores y motores de reglas con criterio en lugar de reinventarlos mal.
Este proyecto afina
- recursion
- abstraction
- python