CZ3007 Compiler techniques lab project : design & development of a RDP generator application

A web application was developed to serve as a supplementary tool to enhance the course CZ3007 Compiler Techniques. The application caters to students taking CZ3007. It allows them to submit Context-Free Grammars (CFGs) of their own design, and produces Recursive-Descent Parser (RDP) code based on th...

詳細記述

書誌詳細
第一著者: Lim, David Samuel Pek Cheng
その他の著者: Huang Shell Ying
フォーマット: Final Year Project (FYP)
言語:English
出版事項: Nanyang Technological University 2021
主題:
オンライン・アクセス:https://hdl.handle.net/10356/153342
その他の書誌記述
要約:A web application was developed to serve as a supplementary tool to enhance the course CZ3007 Compiler Techniques. The application caters to students taking CZ3007. It allows them to submit Context-Free Grammars (CFGs) of their own design, and produces Recursive-Descent Parser (RDP) code based on the design of the input CFG. The objectives of the website are to fuel students’ interest in Parsing as well as to strengthen their knowledge of CFGs and RDPs through hands-on experimentation with live code. The application is also designed to complement the existing course material of CZ3007, and hence aims to be an assistive tool that students can use alongside the course content, thus strengthening the educational value of the course. The application makes use of a modular, layered architecture to implement its various functionalities. Each functionality is implemented as a separate “plug-in” module that joins together to form the final application. This approach to development helps to achieve Loose Coupling amongst the various functionalities, as well as extensibility of the application, since functionalities can be added and removed easily with minimal modification to the overall application. At the end of the project, the intended functionalities were found to have been implemented successfully and in a satisfactory state. As such, the initial goals of the application, as well as the project, have been successfully met. Possible enhancements to the application that can be implemented in the future have also been identified and described, such as wider language support.