Jonesforth – A sometimes minimal FORTH compiler and tutorial (2007)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • jonesforth

    Mirror of JONESFORTH

  • jombloforth

    Minimal FORTH interpreter for 64-bit Linux systems. Based on jonesforth.

  • 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

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • foth

    Tutorial-style FORTH implementation written in golang

  • 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

  • language-incubator

    Learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc.

  • It was a lot of fun for me to reimplement this in MIPS assembler on CI20 [0]

    JonesForth could be more straightforward in its interpreter part. I tried to make this part as clean as possible, hopefully did not miss anything.

    Maybe I will make a RISCV version in my copious free time in the future.

    [0] https://github.com/EarlGray/language-incubator/blob/29755c32...

  • zForth

    zForth: tiny, embeddable, flexible, compact Forth scripting language for embedded systems

  • [SSP] Assembly is of course nice, but not always practical. For those interested in a compact, embeddable and portable little Forth written in C, take a peek at zForth: https://github.com/zevv/zForth.

  • fibr

    a minimal interpreter

  • forthy2

    a Forth (for you) too

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ti84-forth

    A Forth implementation for the TI-84+ calculator.

  • 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

  • zkeme80

    An assembler and operating system for the TI-84+ written in Scheme, Forth and Z80 assembly.

  • 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

  • pijFORTHos

    A bare-metal FORTH operating system for Raspberry Pi

  • I want to write one for bare metal (non-Linux) raspberry pi (ARMv6 32 bit on Raspberry Pi 1 and Zero; ARMv7 and ARMv8 on higher models and also supports 64 bit). I want to have no dependencies required though so was thinking of bootstrapping it with nothing but machine code (determined initially with the help of an assembler and documentation of course). Someone has already ported jonesforth the Raspberry Pi[1] but using serial i/o as the user interface and it has dependecies to build it, but I should be able to get ideas from how they coded their assembly parts compared to the original jonesforth. I want to be able to use HDMI for the screen (already tried it out with some bare metal tutorials in assembly so that's do-able) and again, with no dependencies. And I want to show people how to do it themselves, not just have it be something to run that they don't understand fully. It should also be possible to have the forth kernel build/assemble itself if needed, or cross-target another platform.

    I know I'm all talk right now, like you say, I need to manage my free time so that I would have the "copious free time" to work on this.

    [1] https://github.com/organix/pijFORTHos

  • factor

    Factor programming language

  • I must mention Factor, which is a modern concatenative, stack-based programming language. It turns out Forth was just the first concatenative language discovered/constructed.

    https://factorcode.org/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts