A custom interpreted programming language built from scratch.
Created by Jacob Shultz and Seth Baker
Course: CS1720 Fall '25
We designed and implemented a custom interpreted programming language, constructing the entire interpretation pipeline from the ground up. The project involved building four core components that work together to transform source code into executable output:
Lexer — Tokenizes raw source code into meaningful symbols
Parser — Constructs an abstract syntax tree from the token stream
Analyzer — Performs semantic analysis and validates program structure
Evaluator — Executes the analyzed code and produces results
This end-to-end implementation gave us deep insight into how programming languages work under the hood, from the first character read to the final output displayed.
See Examples.pdf for instruction on how to run the interpreter as well as working code examples and demonstrations.
Custom syntax design
Complete lexical analysis
Recursive descent parsing
Pratt parsing
Semantic validation
Runtime evaluation