[HN Gopher] I learned Snobol and then wrote a toy Forth
       ___________________________________________________________________
        
       I learned Snobol and then wrote a toy Forth
        
       Author : ingve
       Score  : 111 points
       Date   : 2025-05-11 06:38 UTC (2 days ago)
        
 (HTM) web link (ratfactor.com)
 (TXT) w3m dump (ratfactor.com)
        
       | cafard wrote:
       | I learned Snobol in school. It came in handy when I later
       | encountered awk and then Perl.
        
       | sargstuff wrote:
       | ?? 2 or 4 horse open sleigh project ??
        
       | JSR_FDED wrote:
       | I love this! SNOBOL is weird but the article does a great job
       | showing the power of a small but very uniform and consistent
       | language.
        
       | throwaway71271 wrote:
       | R. G. Loeliger Threaded Interpretive Languages Their Design And
       | Implementation[1] is an amazing book, since it was out of print,
       | I printed it on a good 160gsm a4 paper, and I randomly open it
       | every few weeks just to read through it. I strongly recommend it,
       | even if you are not interested in Forth.
       | 
       | 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...
       | 
       | [2]: https://www.bradrodriguez.com/papers/moving1.htm
        
         | bwfan123 wrote:
         | Back in the day, iirc sun workstations booted into forth as a
         | rommed boot-monitor for hw diagnostics. Is forth around anymore
         | in practical use ?
        
           | throwaway71271 wrote:
           | well there is https://collapseos.org/ :)
        
           | packetlost wrote:
           | I recall a RedoxOS developer mentioning they were using a
           | FORTH in the bootloader or some other very low level piece of
           | that project.
           | 
           | 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.
        
             | yjftsjthsd-h wrote:
             | Last I looked FreeBSD was using FORTH in their bootloader
        
           | Jtsummers wrote:
           | Open Firmware: https://en.wikipedia.org/wiki/Open_Firmware
           | 
           | OpenBOOT: https://openfirmware.info/OpenBOOT
           | 
           | That second link has a link to a git repository and you can
           | see the forth code there.
        
             | mananaysiempre wrote:
             | The original author of (that first implementation of) Open
             | Firmware, Mitch Bradley[1], is still active on GitHub and
             | in particular in Forth-specific discussions, by the way.
             | 
             | [1] https://github.com/mitchbradley
        
           | adastra22 wrote:
           | Bitcoin's script language for smart contracts / spend
           | conditions is Forth.
        
         | dang wrote:
         | Related to that first link:
         | 
         |  _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)
        
       | oytis wrote:
       | Are there any non-toy implementations of Forth?
        
         | quasidasimagasi wrote:
         | I guess this is supposed to be some kind of trolling,
         | nonetheless: mecrisp is great and definitively no toy.
        
         | haolez wrote:
         | There are probably several, but I had contact in the beginning
         | of my career with a company that made industrial printers. They
         | said that, in the first years of the company (80s), adopting
         | FORTH gave them an edge over the competitors and it was the
         | main (tech) factor of their success. They implemented their
         | firmware in FORTH with some PostScript wizardry as well.
        
         | rwmj wrote:
         | gforth (https://www.gnu.org/software/gforth/) is non-toy,
         | although at the same time I'm not aware of commercial products
         | that might use it.
        
         | mike_ivanov wrote:
         | also Factor (https://factorcode.org/)
        
           | a4isms wrote:
           | As long as we're talking about concatenative languages,
           | here's Joy:
           | 
           | https://hypercubed.github.io/joy/joy.html
           | 
           | https://en.wikipedia.org/wiki/Joy_(programming_language)
        
         | alexisread wrote:
         | Try
         | https://github.com/JohnEarnest/Mako/blob/master/docs/makoBas...
         | 
         | 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.
        
       | jollyllama wrote:
       | Upvote for Ratfactor who made the most useful HTMX reference
       | around (even though it wasn't completed)
       | https://ratfactor.com/htmx/
        
       | geophile wrote:
       | Snobol was a major part of my formative years in computer
       | science. I don't recall how I came across the language, but it
       | spoke to me in all sorts of ways.
       | 
       | - 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.
        
       | nlte wrote:
       | Does anyone know what is that cool little computer on the
       | picture?
        
         | Jtsummers wrote:
         | MNT Pocket Reform
         | 
         | https://ratfactor.com/mnt-pocket-reform/
        
           | blizdiddy wrote:
           | Paying over $1000 for an rk3588 that lasts 4 hours, with
           | glitchy wifi, bluetooth, and charging?! $500 for the SoC
           | module alone, despite the fact that Chinese companies can put
           | that same chip in a $200 handheld.
           | 
           | It's a shame that China is so singularly capable at making
           | things
        
       | kaycebasques wrote:
       | (Tangential) On a recent roadtrip up to Portland from SF I
       | stopped in a small historic mining town near Shasta called
       | Dunsmuir. They had a Little Free Library so of course I had to
       | check out what was in it. I was delighted to find an old book on
       | Forth from the 80s, called Starting Forth. Inside of the book
       | there were some business cards for FIG: Silicon Valley Forth
       | Interest Group.
        
         | macintux wrote:
         | I was pleasantly surprised to discover that my favorite
         | technical writer, W. Richard Stevens (RIP), long ago wrote a
         | Forth manual for Kitt Peak Observatory.
         | 
         | It can be found here: https://www.forth.org/tutorials.html
        
       | Animats wrote:
       | SNOBOL is a high level string processing language. Forth is an
       | odd thing to implement in it. Forth is so low level you can
       | implement it in an FPGA.
       | 
       | 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.
        
       | ebiester wrote:
       | If you like Snobol, I'd take a look at Icon, Griswold's research
       | language after Snobol. It took a lot of the ideas but smoothed it
       | out.
       | 
       | 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.
        
       | anthk wrote:
       | Check Starting Forth, Thinking Forth plus Eforth+Subleq.
        
       | dang wrote:
       | SNOBOL-related. Others?
       | 
       |  _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)
        
       ___________________________________________________________________
       (page generated 2025-05-13 23:00 UTC)