Core components: lexer, parser, analyzer, interpreter/compiler path, runtime support, and STL.
University Coursework
A multipurpose language project developed for CI601, intended as a beginner-friendly midpoint between Java-style structure and Python-like accessibility.
> approach: grammar-first language design
> stack: Java / Gradle / LLVM exploration
> delivery: working interpreter pipeline
Total Commits
39
Open Issues
0
Last Updated
1 year ago
May 20, 2025, 11:25 PM UTC
Stars
1
Languages
Java 100%
Core components: lexer, parser, analyzer, interpreter/compiler path, runtime support, and STL.
Sample application objective: read current time, append to file, print file contents.
Strong error handling and clear diagnostics for beginner usability.
Research covered BNF/EBNF approaches, with grammar-first design used to anchor later implementation.
Performance and flexibility were evaluated; project progressed with an interpreter-first path under time constraints.
Java + Gradle + JUnit were selected for familiarity, modular project structure, and testability.
Tokenization implemented as the first complete stage, with tests used to validate valid/invalid symbol combinations.
Recursive descent parser and AST construction were implemented, heavily informed by compiler engineering resources.
Type/scoping analysis and symbol-table concerns were explored, including design limitations discovered during integration.
IR generation work began, but symbol table design and binding complexity made full compilation infeasible within schedule.
Project finalized with interpreter-focused execution path to ensure a working end-to-end language implementation.
Java was selected for familiarity and ecosystem support; Gradle was used for modular sub-project structure and isolated compilation.
JUnit-backed tests were used during development, especially to validate lexer behavior across valid/invalid symbol combinations and edge cases.
A measurable objective was defined: read current time, append to a file, then print file content to verify practical language capability.
Project Poster
The coursework poster captures the project summary, implementation path, and the final interpreter-focused delivery in a single visual artifact.