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:
- weakly typed variables and casting
- dynamic arrays
- functions and basic functional programming, including passing functions as arguments
- infix mathematical operators, including extensive order-of-operations support (this took me ages)
- advanced control flow, including conditionals, loops, and recursion
- a small built-in standard library
The codebase can be found here: https://github.com/deancureton/Sigma