Forth: The programming language that writes itself: The Web Page

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
  • goforth

    A fully compiled and forth-like language including a small virtual machine.

  • I have implemented yet another forth by myself. It works a little bit different and it is not intended to be a true copy of the original idea.

    Since the post says you can discover Forth, here's my part:

    https://github.com/loscoala/goforth

    The main difference is that in this Forth variant, the source text is completely translated into bytecode and there is no runtime in the sense of classic Forth. This makes it easy to translate the bytecode to C.

    I use my own Forth to generate C code with it, which I then embed in other software.

  • sightreading.training

    🎹 Sight reading training tool

  • That can be very productive and clever, but be - and stay - aware that such polyglot solutions tend to be maintenance headaches in the longer run.

    There is a really nice open source project out there that allows you to train your hearing and your sightreading, but it's written in the authors own language which in turn compiles to JavaScript and the headache to set up their toolchain is such that I haven't bothered fixing any of the bugs that I'm aware of (and there are plenty).

    https://sightreading.training/

    https://github.com/leafo/sightreading.training

    It's written in a language called 'Moonscript':

    https://github.com/leafo/moonscript

    Which compiles to Lua. Which compiles to JS.

    Madness. Nice madness, but still, it stopped me from being a contributor.

  • 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
  • moonscript

    :crescent_moon: A language that compiles to Lua

  • That can be very productive and clever, but be - and stay - aware that such polyglot solutions tend to be maintenance headaches in the longer run.

    There is a really nice open source project out there that allows you to train your hearing and your sightreading, but it's written in the authors own language which in turn compiles to JavaScript and the headache to set up their toolchain is such that I haven't bothered fixing any of the bugs that I'm aware of (and there are plenty).

    https://sightreading.training/

    https://github.com/leafo/sightreading.training

    It's written in a language called 'Moonscript':

    https://github.com/leafo/moonscript

    Which compiles to Lua. Which compiles to JS.

    Madness. Nice madness, but still, it stopped me from being a contributor.

  • MiniForth

    A tiny Forth I built in a week. Blog post: https://www.thanassis.space/miniforth.html (by ttsiodras)

  • As soon as I met Forth, I felt I had to hack my own [miniforth](https://github.com/ttsiodras/MiniForth/) - and did so over a single week, two years ago. I targeted the Blue Pill and the original Arduino, but developed via cross-compilers so that I could test my code in the host.

    I became so obsessed with the project that I was looking forward to tinkering with it after coming back from work every day; so it was hacked in 5 evenings and a weekend.

    It was that fun, to build a Forth. I highly recommend the process - I think the only other time I felt so enlightened was [when I first met Lisp macros](https://www.thanassis.space/score4.html#lisp).

  • third

    Third, a small Forth compiler for 8086 DOS

  • My first programming languages were x86 assembly and Forth. My Dad was into Forth, and I learned programming from him. I wrote several x86 Forth systems for DOS as a teenager, culminating in a somewhat-polished ANS compatible one I called "Third": https://github.com/benhoyt/third -- it's kind of amazing being able to have a fully bootstrapped Forth compiler (including an assembler) in a couple thousand lines of code.

    Just the other day I transcribed an old article I had co-written for the Forth Dimensions magazine. I still like the ideas in Forth, but the stack manipulation quickly gets tedious and is very hard to read. Just look at the code examples in https://benhoyt.com/writings/forth-lookup-tables/ -- especially Search-Table. Yikes! Yes, naming things is hard, but apparently not naming them is even harder.

  • muforth

    A simple, indirect-threaded Forth, written in C; for target compiling; runs on Linux, BSD, OSX, and Cygwin

  • Is Google down again? Bummer.

    FORTH is still used to bring up new silicon because of its tiny core, you only need a couple of working assembly instructions to bootstrap yourself into a working system, you could do this entirely in cache or a small static RAM if you don't have a working memory controller yet.

    It is also used all over the place in embedded controllers, https://arduino-forth.com/ , http://www.piclist.com/techref/microchip/language/forths.htm , https://github.com/nimblemachines/muforth , from PICs to ARMs and everything in between.

    You won't see a lot of hype around it and repos tend to be old because they 'just work', typically a user of such a system would download it and customize it to the point that sharing it would be pointless, the whole idea is to extend the language to become the application.

  • factor

    Factor programming language

  • 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
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