Functions Vectors Evaluate Isolate Solve Matrix Tensor Calculus Derivation Limit Procedures Scopes Statements Interpreter Parser Lexer # Openbirch Openbirch is a programming language that I made together with my friend from school. It was an attempt at making a CAS tool to use instead of Maple (the UX is terrible). The biggest challenge besides creating a programming language was creating a programming language where any variable could be undefined at runtime, but still used to define other variables. An example of this would be `x := 2*y`. Here `y` is not defined, but it is still used to define `x`. This was a unique challenge that was solved by representing everything as a *tree* ![tree representation](/openbirch/tree.png "Tree Representation")