Grammarcheck: a dynamic LL (1) grammar checker using recursive descent parsing with chatbot assistance - Roselan, Nur Athirah Arami; Ibrahim Teo, Noor Hasimah (College of Computing, Informatics, and Mathematics, 2025)
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.