subleq
Mako
Our great sponsors
subleq | Mako | |
---|---|---|
9 | 6 | |
52 | 555 | |
- | - | |
4.8 | 2.6 | |
8 days ago | over 3 years ago | |
Forth | Forth | |
The Unlicense | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
subleq
-
The ancient world before computers had stacks or heaps
I wrote a Forth interpreter for a SUBLEQ machine (https://github.com/howerj/subleq), and for a bit-serial machine (https://github.com/howerj/bit-serial), both of which do not have a function call stack which is a requirement of Forth. SUBLEQ also does not allow indirect loading and stores as well and requires self-modifying code to do anything non-trivial. The approach I took for both machines was to build a virtual machine that could do those things, along with cooperative multithreading. The heap, if required, is written in Forth, along with a floating point word-set (various MCUs not having instructions for floating point numbers is still fairly common, and can be implemented as calls to software functions that implement them instead).
I would imagine that other compilers took a similar approach which wasn't mentioned.
- Show HN: Computing with just one instruction – Forth on SUBLEQ
-
SUBLEQ eForth book
I've already posted about the implementation on Forth, but you might want to see how such a system is created in detail along with the design decisions and compromises. The source code can be freely viewed at https://github.com/howerj/subleq.
- Show HN: A single instruction computer running Forth
- Forth on a SUBLEQ (A One Instruction Set Computer)
- Forth Running on a One Instruction Set Computer
- Computing with Just One Instruction
Mako
- Konilo: A personal computing system in Forth
-
Building a Game for an Imaginary Game Console, Based on an Imaginary CPU
this project reminds me a bit of one of my old projects; a forth VM and development toolchain: https://github.com/JohnEarnest/Mako
-
Lisp in Forth
On a related note, here's a Logo interpreter I implemented many years ago using a dialect of Forth: https://github.com/JohnEarnest/Mako/blob/master/demos/Loko/L...
- Mako
-
8-bit stack-machine emulated by 200 lines of C
Some similarities to one of my old projects, MakoVM:
https://github.com/JohnEarnest/Mako
It is also Forth-based, and has an ecosystem of interesting little games, programs, and libraries. The CPU, GPU, and other IO facilities fit in a little over 200 lines of Java:
https://github.com/JohnEarnest/Mako/blob/master/src/MakoVM.j...
- Mako is a portable stack-based virtual game console
What are some alternatives?
swapforth - Swapforth is a cross-platform ANS Forth
miniforth - A bootsector FORTH
durexforth - Modern C64 Forth
arkam - A Simple Stack VM and Forth
lbForth - Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.
elfort - A Forth metacompiler that directly emits an executable binary for x86-64 Linux written in Arkam
CAMEL99-ITC - Indirect threaded code version of CAMEL99 Forth for TI-99 computer
forthlisp - A Small Lisp in Forth
VIBE99 - A vi like editor for Forth BLOCK files for TI-99
cass-edi - UCSD Center for Astrophysics and Space Sciences - Electron Drift Instrument - Test Harness - Forth
ESP32forth - FORTH developments for ESP32
ecma6-forth - Low level forth like language for writing canvas applications