I have been programming in all kinds of languages, from assembly to clojure, but in 25 years I never programmed stack languages, I was kind of scared of them, it wasn't until I read the book and made my own Forth I understood what I was missing. Since then I made few interpreters, with jit, or with types, etc, it was super fun, but most of all it allowed me to see a completely new paradigm of programming, kind of the first time you understand eval/apply from 13th page of the LISP 1.5 Programmer's Manual. A language that writes itself and it is written in itself.
If you are making your own Forth, this Brad Rodriguez's article is also really good [2].
[1]: https://archive.org/details/R.G.LoeligerThreadedInterpretive...
FORTH is the type of thing that probably exists all over the place but it's so deep and arcane that you would never know it.
OpenBOOT: https://openfirmware.info/OpenBOOT
That second link has a link to a git repository and you can see the forth code there.
Threaded Interpretive Languages (1981) [pdf] - https://news.ycombinator.com/item?id=17227466 - June 2018 (1 comment)
and to the second link:
Moving Forth (1993) - https://news.ycombinator.com/item?id=26900401 - April 2021 (7 comments)
Moving Forth, Part 1: Design Decisions in the Forth Kernel (1993) - https://news.ycombinator.com/item?id=10949339 - Jan 2016 (5 comments)
and
https://github.com/ablevm/able-forth/tree/current
In addition to the others mentioned here. It's a shame the able gui was not open sourced.
- Elegant and weird syntax and structure.
- Powerful pattern matching.
- It was the first GCed language I used.
- The Griswold, Poage and Polonsky book on Snobol4. A classic in the K&R mold, to my mind.
- Took 2 compiler courses from RBK Dewar who worked on the Spitbol implementation. Great teacher, fantastic courses, with lots of insight into the Spitbol project and his research on the SETL language.
- Wrote software for my MSc thesis in Snobol4. It used so much memory that I had to book the school’s IBM 370 at 4AM to run the software. I think I got something like 1-2 MB of memory.
It’s a shame that China is so singularly capable at making things
It can be found here: https://www.forth.org/tutorials.html
SNOBOL has patterns more powerful than regular expressions. The pattern matching can take exponential time, because it's a depth first search in a recursive space. Regular expressions, which have very limited backup, were adopted to put an upper bound on pattern match time.
I remember writing the Icon string manipulation in java in college, and I've hated regular expressions for a long time because Icon had it right, albeit verbose.
Eliza in SNOBOL4 - https://news.ycombinator.com/item?id=41889284 - Oct 2024 (24 comments)
Spitbol 360: an implementation of SNOBOL4 for IBM 360 compatible computers - https://news.ycombinator.com/item?id=38234319 - Nov 2023 (6 comments)
SNOBOL (“StriNg Oriented and SymBOlic Language”) - https://news.ycombinator.com/item?id=35800936 - May 2023 (56 comments)
The SNOBOL4 Programming Language [pdf] - https://news.ycombinator.com/item?id=23345560 - May 2020 (6 comments)
SNOBOL4 - https://news.ycombinator.com/item?id=22233111 - Feb 2020 (1 comment)
Parsing with Snobol - https://news.ycombinator.com/item?id=20401576 - July 2019 (1 comment)
Dave Shields, the programmer maintaining SPITBOL - https://news.ycombinator.com/item?id=10211724 - Sept 2015 (23 comments)
SnoPy – Snobol Pattern Matching Extension for Python - https://news.ycombinator.com/item?id=10106008 - Aug 2015 (10 comments)
On being the maintainer and sole developer of SPITBOL (2012) - https://news.ycombinator.com/item?id=10103276 - Aug 2015 (95 comments)
cafard•6d ago