SyntaxTutor is an educational application designed to help compiler students understand LL(1) and SLR(1) parsing algorithms. Through a visual and interactive interface, it guides users step-by-step through the computation of FIRST, FOLLOW, CLOSURE, GOTO, predictive parsing tables, and LR automata, offering real-time pedagogical feedback.
Rather than acting as a mere calculator, SyntaxTutor functions as a learning companion. It explains the reasoning behind each step, highlights common mistakes, and encourages students to engage with the theory behind the algorithms.
SyntaxTutor is part of a Final Degree Project (TFG) developed at the University of MΓ‘laga (UMA), in the Computer Engineering program. Its main goal is to offer an educational companion for students learning syntax analysis, going beyond traditional calculators by incorporating guided feedback, visualization, and gamified learning.
Home screen with gamification, levels, and language options.
Interactive LL(1) tutor asks questions and provides feedback.
Derivation tree view showing how FIRST sets are built step-by-step.
Completion of the LL(1) predictive table with visual guidance.
User is asked to identify symbols after the dot in an LR(0) item.
Step-by-step explanation of the GOTO/closure construction.
Interactive SLR(1) table to complete, with states and terminals/non-terminals.
SyntaxTutor walks the student through each cell in the parsing table with hints and context.
Precompiled builds of SyntaxTutor are available in the Releases tab:
To build SyntaxTutor from source, you just need:
qmake6
) qmake6 make
` This will generate the executable in te project directory.