Dev tools · alternatives · 2026
24 alternatives to Built a tiny interpreter from scratch in C to understand how they work
Hi HN, I'm the author. I built this project for two simple reasons: I've always used higher-level languages and wanted to finally understand what's happening "under the hood" of an interpreter. I also wanted a real project to force me to "power up" my C skills, especially with manual memory management and reference counting. The result is ToyForth, a minimal interpreter for a Forth-like language, written from scratch in C, stack-based. I focused on making the code clean and understandable. It's broken down into a few simple parts: A parser that turns source text into a list of objects…
Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes.
- 1IB
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…
2025 · its alternatives →
- 2GI
Hi all! I'm going into my freshman year, and figured that the best way to prepare for the intro to programming Racket course would be to implement my own garbage-collected, dynamically typed, functional programming language in C ;) Anyways... here's the repo: https://github.com/liam-ilan/crumb I started learning C over the summer, so I still have a whole lot to learn... Any feedback would be greatly appreciated! :D
2023 · its alternatives →
- 3

Bootstrapping a Forth interpreter from hand-written tiny ELF binary. Just for fun. - GitHub - nineties/planckforth: Bootstrapping a Forth interpreter from hand-written tiny ELF binary. Just for fun.
2021 · github.com · its alternatives →
- 4

Hi friends, I started casually working on scrapscript in 2015. I built a few compilers over the years to test out various ideas/implementations, and I think I'm finally happy with the overall design. The code is not public yet. Email me at [email protected] if you're interested in joining the core team later this year. Let me know if you have any questions or feedback :)
2023 · scrapscript.org · its alternatives →
- 5

A fun toy memory allocator (not thread safe, that's a future TODO). I also wanted to explain how I approached it, so I also wrote a tutorial blog post (~20 minute read) covering the code which you can find the link to in the README.
Nov 2025 · github.com · its alternatives →
- 6IW
The book page links to a blog post that explains how I got about it (and has a link to sample content), but the TL&DR is that I could not find a lot of books that were on "our" history _and_ were larded with technical details. So I set about writing one, and some five years later I'm happy to share the result. I think it's one of the few "computer history" books that has tons of code, but correct me if I'm wrong (I wrote this both to tell a story and to learn :-)). My favorite languages are Smalltalk and Lisp, but as an Emacs user, I've been using the latter for much longer and for my…
Feb 2026 · berksoft.ca · its alternatives →
- 7

One of the most challenging projects of my life :)
2024 · github.com · its alternatives →
- 8

Programming language that compiles into a x86 ELF executable. - riicchhaarrd/ocean
2021 · github.com · its alternatives →
- 9

A hackable and extensible lexer, parser and interpreter for a minimalistic, imperative, C-like language. - bbu/simple-interpreter
2015 · github.com · its alternatives →
- 10LC
I made a simple virtual machine that runs C in the browser.This project is made as an experiment to see if C can be learned easier if the lower level is covered in paralel. Sandbox: https://vasyop.github.io/miniC-hosting Tutorial part 1: https://vasyop.github.io/miniC-hosting/?0 More info: https://github.com/vasyop/miniC-hosting/blob/master/README.md Please support this project: https://github.com/vasyop/miniC-hosting/blob/master/support.md
2019 · its alternatives →
- 11

I've built many interpreters over the years, and Bolt represents my attempt at building the scripting language I always wanted. This is the first public release, 0.1.0! I've felt like most embedded languages have been moving towards safety and typing over years, with things like Python type hints, the explosive popularity of typescript, and even typing in Luau, which powers one of the largest scripted evironments in the world. Bolt attempts to harness this directly in the lagnauge rather than as a preprocessing step, and reap benefits in terms of both safety and performance. I intend to be…
2025 · github.com · its alternatives →
- 12

Moved to Forgejo! Contribute to krig/LISP development by creating an account on GitHub.
2018 · github.com · its alternatives →
- 13

Write your own compiler: introduction. Code genetation. AST. Abstract syntax tree. lisp. javascript.
2017 · blog.klipse.tech · its alternatives →
- 14

Long-simmering side project that is finally ready to see the light. HAMTs are a cool persistent data structure and implementing one has been a lot of fun. Beyond the code, there is likely some value in the extensive and largely complete implementation docs; basic benchmarks are linked in the README, too. Kind of aiming to be "the libavl for HAMTs". That is obviously a high and aspirational bar but a distinct possibility if it stirs up a little interest and/or contribution. Anyways, it's time for this to go out, collect feedback and maybe even some use outside of toy projects. Let me…
2023 · github.com · its alternatives →
- 15

A BASIC interpreter written in golang. Contribute to skx/gobasic development by creating an account on GitHub.
2018 · github.com · its alternatives →
- 16

A C interpreter and API explorer. Contribute to hexagonal-sun/bic development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 17

Heap based scheme machine. GitHub Gist: instantly share code, notes, and snippets.
2025 · gist.github.com · its alternatives →
- 18

Hi! I've been working on the flipjump project, a programming language with 1 opcode: flip (invert) a bit, then jump (unconditionally). So a bit-flip followed by more bit-flips. It's effectively a bunch of NOT gates. This language, as poor as it sounds, is RICH. Today I completed my compiler from C to FlipJump. It takes C files, and compiles them into flipjump. I finished testing it all today, and it works! My key interest in this project is to stretch what we know of computing and to prove that anything can be done even with minimal power. I appreciate you reading my announcement, and be…
2025 · github.com · its alternatives →
- 19

2017 · craftinginterpreters.com · its alternatives →
- 20

I made this simple language over the past year, and it's time for me to say it's "done" (for now) and focus on other projects. I've struggled to answer the question "what is this language for?" other than "it's just for me" — and that's probably good enough. But I also wanted to make something "complete" that others could use if they wanted to. Writing my own language was an incredibly rewarding experience, and I'd recommend everyone trying it. Let me know if you have any questions or feedback, and please share your own experience if you've also made a language.
2023 · cassette-lang.com · its alternatives →
- 21MP
I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do. One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it. The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself. I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I…
2023 · zamfofex.neocities.org · its alternatives →
- 22

Hey! I’m JC. I’m 17 and part of Hack Club, a nonprofit where we help teenagers ship programming projects with their friends while growing technically. A while ago, I asked myself the question, “How exactly do programming languages work behind the scenes?” It seemed really daunting until I went to a half hour workshop at a high school hackathon about writing a tree-walk interpreter and realized that getting started was actually super fun. This guide is designed in the vein of that - to get people, especially teenagers, started on learning how to build a programming language in a literal…
2024 · easel.hackclub.com · its alternatives →
- 23

A simple, self hosted, low level programming language. - mcilloni/fork
2018 · github.com · its alternatives →
- 24
CJIT▲83CJIT started as a hobby project around Fabrice Bellard’s tinyCC and slowly grew into something much more practical. It is now a small portable C compiler and runner that works across Linux, macOS, and Windows, can self host, and is packaged as a single executable. What mattered most to me was keeping the barrier to entry low. You can take one small binary, drop it onto a system, and compile or run C code using the libraries already available there, without setting up a full toolchain or installing a large stack of dependencies. I find that useful for quick prototyping, testing, auditing,…
2024 · dyne.org · its alternatives →
Also compare
- I built a minimal Forth-like stack interpreter library in C alternatives
- Going into freshman year, figured I should build an interpreter alternatives
- PlanckForth – Bootstrapping an interpreter from handwritten 1kb binary alternatives
- ScrapScript – A tiny functional language for sharable software alternatives
- I wrote a minimal memory allocator in C alternatives
- I wrote a technical history book on Lisp alternatives
Ranked by how close each launch is in meaning, then by votes. Prices were read from each product’s own site when checked and can change. Refine with your own description →