Element Interpreter

November 2021

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