/klaxon

Minimalist RPN language that compiles to x86-64 assembly (with more backends to come).

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

Klaxon

Klaxon is a minimalist language designed to be minimal, modular and simple to implement.

c++ license code size issues discord

Philosophy & Goals

  • Bare minimum of features needed to perform useful computation
  • Features that compose 1
  • Do not appeal to niche use cases 2
  • Minimise configurability 3
  • Modular pipeline built on top of Unix pipes with a standard IR format

Features:

  • Register Allocation
  • Procedures
  • Macros
  • Compiles to x86-64 assembly

Semantics:

  • Word Size Values
  • UTF-8 Source Encoding
  • Two's Complement Signed Arithmetic

License

This project uses the MPL-2.0 license. (check LICENSE)

Progress & Discussion

You can join the discord server in order to follow progress and/or contribute to discussion of the project. (https://discord.gg/H2qKkSd9gC)

Resources:

Footnotes

  1. Features should not be very specific, they should compose well with other features and give rise to emergent features.

  2. Klaxon is not designed to appeal to everyone's own particular needs, it is designed to do as much as possible with the smallest surface area. This means your feature request will most likely not be considered.

  3. Every flag that you introduce into a compiler in order to influence its behaviour results in a combinatorial explosion that makes it virtually impossible to properly bug test all possible paths of execution. Having one right way to do something means that the compiler should (in theory) have less broken edge cases.