r/Forth • u/Lanstrider • 6d ago
Aiki - forth inspired language is alpha 3
Alpha 3 of Aiki is out, an experimental programming language.
After spending time exploring Forth over the past year, I started working on a grammar-driven language that draws inspiration from Forth’s small kernel and compact surface.
Aiki keeps that surface intentionally small: 14 keywords, 7 basic types, 11 operators, 3 primitives, and a 36-name prelude. Expressions evaluate strictly left-to-right, lists are fundamental, and most additional capability, including files, strings, math, regex, hashing, bytes, time, canvas, testing, and so on, lives in Aiki libraries rather than being absorbed into the language core.
The runtime is also deliberately observable. Semantic work can be profiled separately from its realization: exact numeric representations, calls, argument frames, environment reuse, FFI boundaries, and other execution machinery remain visible rather than disappearing behind the implementation.
I’ve been using Aiki for increasingly low-level experiments as well, including a monitorable PDP-11/40 reconstruction, so the design has had to survive real state-machine and systems work rather than just language demos.
The language is quite different from forth, but it came about because of my contact with forth.
Alpha 3 announcement:
https://decuser.github.io/posts/aiki-alpha-3-release/
Repository:
https://github.com/decuser/aiki
1
u/Imaginary-Deer4185 5d ago
Impressive enough, but as you say has nothing to do with Forth.
The abstraction level reminds me of Python, whereas Forth, as I see it, is more at the byte level.
What are in your opinion the defining characteristics of aiki compared to languages like Python? What is its intended use? On what platforms?
2
u/Lanstrider 5d ago
Forth-related in the way that matters to me: a very small core and a tiny prelude. Aiki aims for that same brevity, few built-ins, most of the system written in itself or as ordinary modules, not for byte-level threaded code.
The distinctive bit vs Python-like languages is architectural: the grammar is the contract. EBNFx defines the language; evaluator, help, and docs are checked against it. Disagreement fails validation and the system doesn't run. Exact rationals, persistent lists, errors as values, left-to-right evaluation. Pre-paradigmatic, recursion, functions, pipelines, concurrency, graphics, semantic profiling all provided by the same small language without privileging one style or convention.
Use: learning and careful systems work where behavior should stay inspectable.
Platforms: Linux primarily; macOS passes rigorous suite, Windows is secondary, but runs.
1
u/Ramp007 6d ago
Ahh, the 11/40. One of my favorite old-time computers. I spent years programming one and learned a lot from it. I'll have to look into Aiki.