Dr. Aaron B. Moss - Projects


Parsing

Egg is a Parsing Expression Grammar Generator written in C++. A Parsing Expression Grammar (PEG) can represent some grammars that cannot be expressed as Context Free Grammars (CFGs), and as a practical matter a PEG parser's top-down recursive structure means it does not require a separate lexer. Unlike in Yacc, Egg parsing rules may return values of different C++ types, making it well suited for Abstract Syntax Tree generation. Egg's grammar is based on Ian Piumarta's leg. I have extended Egg with two novel PEG parsing algorithms. [Project] [Paper 1] [Paper 2]

Type Systems

C∀ ("C for all") is a new programming language extending C with modern programming features while maintaining strong backwards compatibility and a familiar mental model. My primary contributions to the language are generic struct and union types, and a new type resolution algorithm that is both more efficient and more powerful. [Project] [Thesis]

Inactive

Basil (for Basis list) is a program for basis enumeration of hyperplane arrangements up to symmetries. This software was created for my Master's thesis, extending the approach of Bremner, Sikirić & Schürmann for basis enumeration of polytopes (as described in "Polyhedral representation conversion up to symmetries") to hyperplane arrangements. [Project] [Paper]