foth
ti84-forth
Our great sponsors
foth | ti84-forth | |
---|---|---|
9 | 3 | |
70 | 82 | |
- | - | |
5.1 | 0.0 | |
2 months ago | almost 3 years ago | |
Go | Assembly | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
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.
foth
- Show HN: Writing a simple FORTH-like system, in simple steps
- Show HN: Implementing a simple FORTH, inspired by a Hacker News thread
-
Byte Magazine: The FORTH programming language
I hacked up a simple forth-like system in golang, by following the overview posted in this hackernews comment-chain:
https://news.ycombinator.com/item?id=13082825
The result is here:
https://github.com/skx/foth
It's not real, but it was a pretty fun experiment regardless.
-
Jonesforth – A sometimes minimal FORTH compiler and tutorial (2007)
Here's one of the many forks that brings it up to 64-bit:
https://github.com/matematikaadit/jombloforth
If you like forth there's an awesome series of comments here on hacker news on building a simple variant in a few simple steps:
https://news.ycombinator.com/item?id=13082825
I took that, and built a simple forth-like system, in golang following the original recipe and breaking it down into simple steps for learning-purposes:
https://github.com/skx/foth
- Forth control flow execution steps.
-
ColorForth (2009)
I'll always vote up submissions referencing anything FORTH related. For me FORTH is as much fun as lisp appears to be for others. I've never really done much with it, but I always like the simplicity and the ability to reason about it.
Sure FORTH has problems of its own, but it's always nice to use. I've hacked up a couple of simple FORTH-like systems over the years, most recently this one which was inspired by a thread on this site:
https://github.com/skx/foth
A lot of people go through guides of writing a lisp, I'd love to urge people to try writing a simple FORTH interpreter instead, or even something somewhat related such as TCL.
-
Lang Jam: create a programming language in a weekend
There's even a recipe posted in a couple of comments here:
https://news.ycombinator.com/item?id=13082825
I followed that guide to implement a simple FORTH-like system in golang:
https://github.com/skx/foth
As I was following the implementation recipe I broke it down into "educational steps". Although it isn't a true FORTH it is pretty easy to understand and useful enough to embed inside other applications.
Now and again I consider doing it again, but using a real return-stack to remove the hardcoded control-flow words from the interpreter, but I never quite find the time.
- Tutorial-style FORTH implementation written in Golang
-
Wisp: A light Lisp written in C++
I actually hacked up a simple forth-like system, after reading a brief howto here on hackernews:
https://github.com/skx/foth/
Here's the thread which has the barebones overview which inspired me:
https://news.ycombinator.com/item?id=13082825
I could have taken it further, but the implementation there is not "real" in the sense that there is no real return-stack, so you can't implement IF-statements using the lower-level primitives.
That said it is a good starting point, and I had some fun doing it. I'd guesstimate it is more of a single weekend project though, rather than longer.
ti84-forth
-
The Zen of Forth
Forth also requires very minimal resources to implement which can be fun in constrained environments. Here it is on a TI-84+ calculator[0] or even a computer in The Powder Toy.[1]
The runtime design is a little quirky but straightforward and you can extend the system as you execute (or even change interpreter semantics), or add optimizations such as some form of JIT quite easily.
[0] https://github.com/siraben/ti84-forth
[1] https://github.com/siraben/r216-forth
-
Jonesforth – A sometimes minimal FORTH compiler and tutorial (2007)
Some time ago I wrote an implementation of Forth that runs on the TI-84+ and TI-83+ calculators directly inspired by Jonesforth.[0] It runs under TI-OS as well, but the amount of available space is somewhat limited. On another implementation I wrote[1] you have full access to the calculator hardware and memory from Forth.
[0] https://github.com/siraben/ti84-forth
[1] https://github.com/siraben/zkeme80
-
TI-84 Plus CE Python Graphing Calculator
On the TI-84+, assembly programs still work and it's still a test-approved device. I wrote a Forth interpreter[0] that can interop with the syscalls as well
[0] https://github.com/siraben/ti84-forth
What are some alternatives?
wisp - A little Clojure-like LISP in JavaScript
SymPy - A computer algebra system written in pure Python
rustc_codegen_cranelift - Cranelift based backend for rustc
Ndless - The TI-Nspire calculator extension for native applications
cling - The cling C++ interpreter
jonesforth_riscv - Jonesforth RISC-V port.
sectorlisp - Bootstrapping LISP in a Boot Sector
TI84-Wordle - Wordle for the TI84 Plus CE graphing calculator.
factor - Factor programming language
KnightOS - OS for z80 calculators
zForth - zForth: tiny, embeddable, flexible, compact Forth scripting language for embedded systems
v200 - A TI Voyage-200 emulator