SyntaxTutor
Educational app designed to help compiler students understand LL(1) and SLR(1) parsing algorithms.
 
Loading...
Searching...
No Matches
SyntaxTutor: An interactive Tool for Learning Syntax Analysis

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.


πŸŽ“ Academic Context

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.


🎯 Key Features

  • Educational Focus: built to teach, not just compute.
  • Visualization: derivation trees, intermediate steps, sets, and tables.
  • Exportable Results: useful for reports or coursework.

πŸ–ΌοΈ Interface Screenshots

🏠 Main Menu

Main window

Home screen with gamification, levels, and language options.

πŸ“˜ LL(1) Learning Mode

LL(1) dialog view

Interactive LL(1) tutor asks questions and provides feedback.

LL(1) derivation tree

Derivation tree view showing how FIRST sets are built step-by-step.

LL(1) table task

Completion of the LL(1) predictive table with visual guidance.

🧠 SLR(1) Learning Mode

SLR(1) item view

User is asked to identify symbols after the dot in an LR(0) item.

SLR(1) automaton construction

Step-by-step explanation of the GOTO/closure construction.

SLR(1) table fill-in

Interactive SLR(1) table to complete, with states and terminals/non-terminals.

✨ Assisted Mode: Guided Table Completion

SLR(1) guided mode

SyntaxTutor walks the student through each cell in the parsing table with hints and context.


πŸ› οΈ Technologies Used

  • C++: efficient implementation of parsing algorithms
  • Qt6: modern, cross-platform graphical user interface.
  • Modular architecture: clean separation between logic and UI, designed for easy extensibility.

πŸ“¦ Downloads

Precompiled builds of SyntaxTutor are available in the Releases tab:

  • 🐧 Linux (X11): executable AppImage
  • πŸͺŸ Windows: ZIP archive with the .exe
  • 🍎 macOS: .app bundles for both Apple Silicon (ARM) and Intel
Warning
The Windows and macOS versions are not digitally signed. Your operating system may display a warning when running the application. You can bypass it manually if you trust the source.

πŸ› οΈ Building from Source

To build SyntaxTutor from source, you just need:

  • Qt6 (including qmake6)
  • A C++20-compliant compiler qmake6 make ` This will generate the executable in te project directory.