Sigma: Custom Programming Language

Custom programming language I developed in my senior year of high school.


In my senior year of high school, I took the class Honors Programming Languages, in which we were tasked with designing and developing our own language (built on Java). I called mine Sigma.

Although it was intentionally designed to be a bit of a parody (and, as a result, not very user-friendly or enjoyable), the language is quite complete: it contains a working lexer, parser, environment handler, and evaluator, and is built on top of a BNF grammar for syntax. In total, the codebase is several thousands of lines of code.

Some of Sigma’s features include:

  1. weakly typed variables and casting
  2. dynamic arrays
  3. functions and basic functional programming, including passing functions as arguments
  4. infix mathematical operators, including extensive order-of-operations support (this took me ages)
  5. advanced control flow, including conditionals, loops, and recursion
  6. a small built-in standard library

The codebase can be found here: https://github.com/deancureton/Sigma