06 / 06Programming languages
RPAL Interpreter
A Programming Languages coursework project that takes RPAL source through every stage of execution. High-level syntax is standardised into a smaller set of core tree forms first, which keeps the Control-Stack-Environment machine focused on a compact runtime model.
Illustration
- Team
- Team of 2
- Status
- Completed
What I built
- 01Regex-backed scanner for identifiers, integers, strings, operators, punctuation, and comments.
- 02Recursive-descent parser following the RPAL grammar, producing a child-sibling AST.
- 03Standardisation rules for let, where, within, functions, simultaneous definitions, and recursion.
- 04CSE evaluation with control and value stacks, environments, closures, tuples, and built-ins.
- 05A set of RPAL programs with expected trees and output for manual verification.
Scope and limits
- A two-person project, and the report does not split implementation areas between us.
- The repository is a single squashed commit, so history cannot attribute work more finely.
- The sample programs are fixtures rather than an automated test harness.
Built with
- Java
- Lexical analysis
- Recursive-descent parsing
- AST
- CSE machine