This weekend I created stacklib.h - a single-header library that brings Forth-style stack operations to C. It implements a basic interpreter with:
- Stack operations (push/pop/dup/swap/over/drop)
- Arithmetic (+, -, *, /)
- Output (., emit, cr)
- Stack inspection (.s, depth)
Example usage:
Stack s;
stack_init(&s);
dict_init();
exec(&s, "10 20 + ."); // Prints "30"
exec(&s, "1 2 3 4 .s"); // Shows stack contents
The library is self-contained, requires no dependencies, and handles basic error checking. It was inspired by wanting to understand how Forth works at a fundamental level while keeping the simplicity of C.
I'm curious what other stack-based or concatenative programming enthusiasts think about this approach. Has anyone else built something similar? What features would you add to make it more useful?
GitHub: https://github.com/Ferki-git-creator/stacklib
Starting FORTH https://archive.org/details/LeoBrodieStartingFORTHIntroducti...
Threaded Interpretive Languages https://archive.org/details/R.G.LoeligerThreadedInterpretive...
The latter doesn't even mention FORTH, and describes some very archaic CPU architectures, but I found it fascinating because it builds things from the ground up.