/nqq

C implementation of nqq (modified implementation of clox)

Primary LanguageCMIT LicenseMIT

Build and Test Run on Repl.it

NQQ

NQQ is my fork of Robert Nystrom's Clox. I started working on it after reading his book Crafting Interpreters.

Key Language Features

NQQ is among other things

  • Interpreted
  • Dynamic with a very weak type system
  • Not obect-oriented
  • Garbage collected

Origin of Name

NQQ is an initialism of the Latin phrase "nequiquam" roughly meaning; in vain, with no purpose, fruitlessly, pointlessly. I did not choose this name because the project is pointelss — quite the contrary, this project is quite meaningful — rather, I chose it to remind myself to not let my ambitions to grow to grand. By humbling my ambitions I hope to be more successful.

Project Goals

  • Learn how to build a programming language front to back. Lexing, parsing, compiling, executing etc.
  • Practice working with C on a non-trivial codebase
  • Experience debugging a complex system that exists at all levels of the stack. Great opportunity to build that debugging grit!
  • Playground to experiment with programming language ideas