Nathaniel Sauer

Cybersecurity and software engineer

All work

compiler

Three-phase recursive-descent compiler in C++, lexer to parser to executor

systemscoursework

What it is

A compiler for the course language in CSE 340 Principles of Programming Languages, built in three phases in C++.

How it works

  1. Lexer (project 2): hand-written, streams tokens to the parser and supports pushing a token back when the parser needs to look ahead.
  2. Parser: recursive descent, one function per grammar rule, producing an abstract syntax tree.
  3. Executor (project 3): walks the tree and carries out the language’s runtime semantics.

Result

Tested against the course-provided test suite.