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...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Final Year Project |
Language: | English |
Published: |
Nanyang Technological University
2021
|
Subjects: | |
Online Access: | https://hdl.handle.net/10356/153342 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
Summary: | 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. |
---|