Skip to content

santa-lang

CLI - Web - Lambda - PHP Extension - Jupyter

santa-lang

An functional, C-like programming language for solving Advent of Code puzzles.

Influenced by: Rust, Python, Clojure, F#, Scala

Release

The recommended implementation is Comet (Rust tree-walking interpreter).

Runtime Platform Release
CLI Linux (x64) santa-lang-comet-cli-1.0.1-linux-amd64
CLI Linux (ARM) santa-lang-comet-cli-1.0.1-linux-arm64
CLI macOS (Intel) santa-lang-comet-cli-1.0.1-macos-amd64
CLI macOS (ARM) santa-lang-comet-cli-1.0.1-macos-arm64
CLI Docker ghcr.io/eddmann/santa-lang-cli:latest
Web WASM @eddmann/santa-lang-wasm
Lambda provided.al2 santa-lang-comet-lambda-1.0.1.zip
PHP Linux (x64) santa-lang-comet-php-1.0.1-linux-amd64.so
Jupyter Linux (x64) santa-lang-comet-jupyter-1.0.1-linux-amd64
Jupyter macOS (Intel) santa-lang-comet-jupyter-1.0.1-macos-amd64

See Reindeer below for alternative implementations (Blitzen, Dasher, Donner, Prancer).

Why?

Over the past several years I have been slowly working through the previous Advent of Code calendars. For each calendar I opt to solve the puzzles in a new programming language, to familiarise myself with other ways of understanding and working. However, there comes a time in each calendar that I grow to dislike some aspect of the language. So I had an idea... why not give this whole programming language design a go. That way if I grow to dislike this language, I only have myself to blame!

Welcome santa-lang, my programming language designed to help tackle Advent of Code puzzles.

Reindeer

There are multiple implementations (affectionately called "reindeer") of the language, all of which follow the language specification. See the Reindeer section for detailed comparisons, downloads, and architecture information.

Implementation Language Execution Model Runtimes
Comet Rust Tree-walking interpreter CLI, Web (WASM), Lambda, PHP, Jupyter
Blitzen Rust Bytecode VM CLI
Dasher Rust LLVM native compiler CLI
Donner Kotlin JVM bytecode compiler CLI
Prancer TypeScript Tree-walking interpreter CLI, Web (JS), Lambda

Tooling

Tool Language Description
Formatter Zig Opinionated code formatter for santa-lang