Grammarcheck: a dynamic LL (1) grammar checker using recursive descent parsing with chatbot assistance

This project focuses on improving the understanding and application of LL (1) grammar in compiler design. LL (1) grammar is crucial for parsing algorithms, but despite that, students often find it difficult to grasp, especially when it comes to applying the 12-step solution process. Current tools pr...

Full description

Saved in:
Bibliographic Details
Main Authors: Roselan, Nur Athirah Arami, Ibrahim Teo, Noor Hasimah
Format: Article
Language:en
Published: College of Computing, Informatics, and Mathematics 2025
Subjects:
Online Access:https://ir.uitm.edu.my/id/eprint/127580/1/127580.pdf
https://ir.uitm.edu.my/id/eprint/127580/
https://fskmjebat.uitm.edu.my/pcmj/
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:This project focuses on improving the understanding and application of LL (1) grammar in compiler design. LL (1) grammar is crucial for parsing algorithms, but despite that, students often find it difficult to grasp, especially when it comes to applying the 12-step solution process. Current tools provide general solutions but lack detailed guidance. In order to address this, the project develops an Android mobile application chatbot that helps users understand and solve LL (1) grammar problems interactively. The application includes an automated checking feature to assist users in verifying their steps and answers. It provides solutions for valid LL (1) grammars through a structured, step-by-step process, offering feedback on correct, incomplete, or incorrect answers. Additionally, the chatbot was using a modified waterfall methodology and was implemented using recursive descent parsing, an essential method for understanding LL (1) grammar, by allowing users to input and test grammar rules. Testing and validation were performed on the application, where it showed great results, particularly in validation output testing, by producing the LL (1) grammar solution without fail. In all validation test cases, the application passed every single one, proving that the application can generate accurate solutions. Moreover, usability testing demonstrated that 75% of the users felt the app greatly reduced the complexity in the solution process of the 12 steps in LL (1) grammar, while 100% found the automated checking feature useful. Given feedback from the app was clear and well-received, the overall user satisfaction was high. The tool has the potential to significantly enhance learning for students studying LL (1) grammar and offer a practical solution for parsing challenges in compiler design. Future work could focus on improving performance and extending the system’s use to other areas in computer science education.