Hobby Project: ANS Forth

I am working on a hobby project and I thought I would share how I was progressing and provide myself an avenue to ask questions when I get stuck or share inspiration and solutions.

The goal of my hobby project is my personal exploration, development, and enrichment, but also because I can do this and I very much enjoy doing it.

Why Forth? Writing a Forth interpreter is a rite of passage in the Forth community and a complete Forth system is one that can be developed, understood, and verified by a single person.

I really want to make clear that this project is not intended to distract you from zeptoforth by @tabemann in any way! My very opinionated version of ANS Forth will never, ever, approach the maturity and feature richness of zeptoforth nor do I ever intend for it to do so. I do not recommend you use what I am doing for anything serious or rely on it. I may drift on and off the project over time.

What I want to offer is that I welcome anyone, even if you are not into Forth, to grab bits and pieces that are useful in your own projects and use them. Also if you do swing by the source, I would love to hear your thoughts.

Oh, the current state is that it is broken and in the middle of implementation. It is only really good at being an integer RPN calculator.

1 Like

That’s a nice project. I also enjoy the journey of implementing stuff from scratch just for the the sake of it. Go on!

1 Like

One thing to remember is that following ANS Forth closely is in many ways limiting, which is part of why so many people don’t do so. I personally don’t regret not following ANS Forth closely.

Actually, I was thinking that ANS Forth was too much! Really, this is just a fun project on my PicoCalc to learn about TILs and to stay sharp.

One thing is that a full implementation of ANS Forth is also rather opinionated when it comes to things such as files and blocks ─ for instance, the way I implement files in zeptoforth is rather different than the implementation implied by the ANS Forth standard.

That it’s what makes the Fourth community so strong!