foth VS jonesforth

Compare foth vs jonesforth and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
foth jonesforth
9 41
70 968
- -
5.1 0.0
2 months ago about 1 year ago
Go Assembly
GNU General Public License v3.0 only -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of foth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-16.
  • Show HN: Writing a simple FORTH-like system, in simple steps
    1 project | news.ycombinator.com | 15 Feb 2024
  • Show HN: Implementing a simple FORTH, inspired by a Hacker News thread
    1 project | news.ycombinator.com | 19 Sep 2022
  • Byte Magazine: The FORTH programming language
    7 projects | news.ycombinator.com | 16 Jul 2022
    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)
    11 projects | news.ycombinator.com | 13 May 2022
    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.
    2 projects | /r/Forth | 10 Mar 2022
  • ColorForth (2009)
    1 project | news.ycombinator.com | 31 Oct 2021
    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
    5 projects | news.ycombinator.com | 31 Jul 2021
    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
    1 project | news.ycombinator.com | 11 Feb 2021
  • Wisp: A light Lisp written in C++
    10 projects | news.ycombinator.com | 28 Dec 2020
    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.

jonesforth

Posts with mentions or reviews of jonesforth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-02.
  • Konilo: A personal computing system in Forth
    5 projects | news.ycombinator.com | 2 Mar 2024
  • Thinking Forth: A Language and Philosophy for Solving Problems [pdf]
    1 project | news.ycombinator.com | 8 Feb 2024
    Cool. Here are some other resources that I've encountered along the way of learning Forth:

    - JonesForth: https://github.com/nornagon/jonesforth/blob/master/jonesfort...

    This is legit a text that goes the an x86 Forth implementation. Actually, it's just an implementation with really extensive comments. That said, including whitespace and comments, it's just 2000 lines and the pedagogy is excellent. Highly recommended for anyone who would rather see behind the curtain before picking up a larger text.

    - SmithForth: https://dacvs.neocities.org/SF/

    So, Smith decided to hand-write a Forth directly in x86-64 opcodes (well, the corresponding ascii hex bytes). It's incredibly slim and enlightening how you can bootstrap a language in just a couple hundred bytes or so.

    This project actually inspired me to really learn the x86-64 architecture, so I ended up hand-decompiling the SmithForth binary instead of going through his commented implementation. Hand-decompilation is an absolutely fascinating exercise. You learn all about ELF structure, opcode encodings, and actually start to see the gaps where microarchitectural details shine through. Highly recommended for any hacker that really wants to grok low level details.

    - Mecrisp: https://mecrisp.sourceforge.net/

    An amazingly fast Forth implementation for MSP430, ARM, RISC-V, MIPS, and some FPGAs. This gave me one really nice understanding of Forth as

        A REPL into your hardware!
  • Problem Running JonesFORTH
    1 project | /r/Forth | 11 Dec 2023
    I've git-cloned JonesFORTH (https://github.com/nornagon/jonesforth/blob/master/jonesforth.S) and achieved to compile it (i.e. run make w/o an error. When I start the executable, it presents me with an empty line, and when I say BYE, it says PARSE ERROR: bye.
  • Ask HN: Where do I find good code to read?
    22 projects | news.ycombinator.com | 24 Aug 2023
    Is there any particular language you're looking for? I've found some languages hideous until I understood them and could appreciate their respective graces. Off the top of my head the I can think of a couple.

    The first is Jones Forth (https://github.com/nornagon/jonesforth), start with jonesforth.S and move into jonesforth.f. I really enjoyed following along with it and trying my hand at making my own stack based language.

    The other is Xv6, a teaching operating system from MIT (https://pdos.csail.mit.edu/6.828/2021/xv6.html), not all the code or implementations are top notch but it shows you non-optimized versions (just because they're simple and more readable) of different concepts used in OS design.

    If you're interested in the embedded world, there is a really neat project I've been following that feels a more structured and safe (as in fault-tolerant) while still staying pretty simple (both conceptually and in the code itself): Hubris and Humility (https://hubris.oxide.computer/).

  • Dusk OS: 32-bit Forth OS. Useful during first stage of civilizational collapse
    1 project | news.ycombinator.com | 16 Jul 2023
    Very low hardware requirements, so basic industrial control at the level where you'd otherwise use an Arduino or so but on scavenged hardware. Forth is ridiculously simple to get an implementation running.

    https://github.com/nornagon/jonesforth/blob/master/jonesfort...

    Is a nice starting point. It's obviously not as compact as say 'Brainfuck' but it is far more versatile.

  • Making my own forth implementation
    5 projects | /r/Forth | 15 Jun 2023
    OP mentioned jonesforth, but linked to a nasm port of it. Which is probably good it’s just that the documentation in the comments with ascii art doesn’t look right on my screen. So here’s a more common repo: https://github.com/nornagon/jonesforth
  • Struggling with looping constructs, BEGIN WHILE REPEAT
    1 project | /r/Forth | 8 Jun 2023
    Rip the asm macros for the basic FORTH words out of this and then embed them in a C binary, statically linked with your favourite libs for whatever task. Although I haven't tried this yet, I'm planning on doing it with ncurses for my own Roguelike. From there, if you can convert the function calls and your parameters down to raw numbers, you can send instructions to ncurses or whatever other API you like, directly from a FORTH stack.
  • I'm wondering why so few forth microcontoller tutorials are out there?
    3 projects | /r/Forth | 10 May 2023
  • replace jonesforth links to the left by proper link
    1 project | /r/Forth | 9 May 2023
    or the mirror of this site in github: https://github.com/nornagon/jonesforth
  • Languages to implement in space-constrained environments
    2 projects | /r/ProgrammingLanguages | 8 Feb 2023

What are some alternatives?

When comparing foth and jonesforth you can also consider the following projects:

wisp - A little Clojure-like LISP in JavaScript

stoneknifeforth - a tiny self-hosted Forth implementation

rustc_codegen_cranelift - Cranelift based backend for rustc

factor - Factor programming language

cling - The cling C++ interpreter

durexforth - Modern C64 Forth

sectorlisp - Bootstrapping LISP in a Boot Sector

tinyrenderer - A brief computer graphics / rendering course

sectorforth - sectorforth is a 16-bit x86 Forth that fits in a 512-byte boot sector.

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

SavjeeCoin - A simple blockchain in Javascript. For educational purposes only.