This course has a once-a-week lab, which both introduces new topics and provides space for collaborative design of the large project component. There are (hopefully) three labs assignments apart from the project. These assignments may be worked on in groups, and any collaboration is allowed. If not completed in class, they must be completed outside of class. Because of the collaborative nature of these assignments, please
In this project, you will take a collection of useful functions, and a incomplete Main file, and construct a working C program from them. You will implement a struct to hold the input data, and a linked-list data structure that supports all of the required operations for the project components in this course.
GitHub Classroom Link
In this project, you will construct an LL(1) parser generator that will take a language specification, and returns both human-readable information, and LL(1) tables suitable for parsing. For ease of implementation, we will use Python.
GitHub Classroom Link
Time permitting, we will have a third lab on inspecting, reverse compiling, and analyzing already-compiled C code.