Compiler
Summary
As part of one of my senior level courses at Clemson, I designed and implemented a compiler based on provided requirements specifications. It took a LISP-like language as an input, then output equivalent JVM byte code that can run on any Java virtual machine. This involved writing a number of components:
- Parser: splits the input into tokens
- Syntax Checker: builds a tree to represent the program and ensure proper syntax
- Type Checker: ensures semantic correctness
- Symbol Table: used C-style scope rules to keep up with what function and variables names are valid at a given scope
- Code Generator: converts the tree into executable code
The project included creating unit tests to verify correctness.
Technical Details
Programming Language: C++


