While at Ultraleap I was responsible for developing an interpreter over a period of 6 months for the Functional Programming language that we open sourced, Element - designed to execute highly performant and optimised code on hardware embedded devices within deterministic bounded space and time constraints
- C++11 Wrapper API (source not available)
- Stable C89 API
- C++17 library internals
- Command Line Interface to compile and evaluate the language using the interpreter
- Lexer & Parser
- Type Checker
- AST Optimisations (Constant Folding, Dead Code Elimation, Peephole Optimisation)
- AST Tree walking expression evaluation
- Extensive documentation, testing, code coverage, static analysis, Github CI/CD, and build systems (CMake)
- A number of internal supporting libraries that used or integrated with the libelement interpreter, such as our Handtracking SDK
- Language design discussions
- Reviewing PR’s by coworkers using the interpreter or creating other libraries and tools for the language, such as those written for C# & Unity