← Back to work

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

  1. 01Regex-backed scanner for identifiers, integers, strings, operators, punctuation, and comments.
  2. 02Recursive-descent parser following the RPAL grammar, producing a child-sibling AST.
  3. 03Standardisation rules for let, where, within, functions, simultaneous definitions, and recursion.
  4. 04CSE evaluation with control and value stacks, environments, closures, tuples, and built-ins.
  5. 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