El proceso de corrección de ejercicios para la enseñanza
de lenguajes de programación se ha realizado tradicionalmente
de forma manual. En los últimos años
se ha avanzado en este aspecto hacia la automatización
de la evaluación de las entregas de los alumnos, lo cual
viene a mejorar tanto el aprendizaje del alumno como
las tareas del profesor. No obstante, uno de los mayores
inconvenientes para lograr este objetivo es la limitación
en el análisis sintáctico del código para comprobar
el cumplimiento de ciertos requisitos en el mismo.
Este trabajo muestra cómo el uso de Clang, un compilador
maduro de código abierto, puede proporcionar
una capacidad de análisis superior mediante el recorrido
por el árbol de sintaxis abstracta. Además, se plantea
el uso de la prueba de mutaciones como técnica que
conciencie a los alumnos de la importancia de diseñar
un conjunto completo de casos de prueba para probar
sus programas.The process of correction of exercises for the teaching
of programming languages has been traditionally accomplished
in a manual way. In recent years, several
advances have been made regarding this aspect towards
the automation of the evaluation of the solutions
provided by the students. This support aims to improve
both the learning of students and the work of lecturers.
However, one of the main drawbacks to achieve this
goal is the limitation in the static analysis of the code to
check the fulfilment of certain requirements. This paper
shows how using Clang, a full-fledged open-source
compiler, can provide a greater capacity for analysis
through the traversal of the abstract syntax tree. Moreover,
the technique known as mutation testing is suggested
to make students aware of the importance of designing
an adequate test suite to test their applications