manicwave Surf the wave

Rediscovering our past: the joy of Forth

"The Rest is Silence" - like a song on a long, apparently elliptical, but regular repeat cycle, this phrase enters my consciousness. Although I was an english major and studied Shakespeare, the quote emanates within me not from Hamlet, but my first run in with Forth.Forth, for those that are members only of the post .asm diaspora, is the creation of Charles Moore. There are a lot of resources on the web laying out the history of Forth and some even prognosticating on the future.For me, Forth emerged during the days of [300 baud modems](http://dir.salon.com/story/tech/f eature/2002/05/31/back_in_the_day/index.html) and BIX. At the time, I had a rabid appetite for computing books. I recall buying Starting Forth and subsequently making a sixty mile roadtrip to purchase Thinking Forth.This was during a time when I read code rabidly - everything from assembler listings to Literate Programming.With my Forth passion growing, I loaded up F83. Kicking out code on my pimped out PC XT 8Mhz (mind you with dual monochrome monitors) I groked Forth pretty quickly. My programming experience with the HP-48S and its use of RPL primed me well for Forth.One of the unique things about Forth (at least until the resurgence in interest in Domain Specific Languages - fueled by Ruby but arguably around for a long time) is the ability to have the source language converge on the problem space. It is a magical place wherein the syntactic sugar of the programming language fades into the background and the language of the domain emerges.The Forth.com homepage says

Many experienced Forth programmers have reported that the language frees them to think in terms of the solution instead of the tool, that it is expressive enough to encourage original, elegant solutions without penalty and without bending over backward. (Some have even said their use of Forth made them better programmers in other languages.)

In Forth procedures are known as WORDS. In F83, source code is laid out in blocks. Each block is 1024 characters conventionally broken into lines of 64 characters each.It is with this knowledge that we find the source of my brain tickler:

\               The Rest is Silence                   04Apr84map
*************************************************************   
*************************************************************   
***                                                       ***   
***    Please direct all questions, comments, and         ***   
***    miscellaneous personal abuse to:                   ***   
***                                                       ***   
***    Henry Laxen          or    Michael Perry           ***   
***    1259 Cornell Avenue        1125 Bancroft Way       ***   
***    Berkeley, California       Berkeley, California    ***   
***    94706                      94702                   ***   
***                                                       ***   
*************************************************************   
*************************************************************   
                                                                
                                                                
\ Load Screen to Bring up Standard System             07Apr84map
                                                                
  2 LOAD    ( Utilities )                                       
  9 LOAD    ( STRINGS )                                         
 12 LOAD    ( EDITING )                                         
 28 LOAD    ( DUMPING )                                         
 31 LOAD    ( SEEING  )                                         
 43 LOAD    ( SHOWING )                                         
 49 LOAD    ( BUGGING )                                         
 52 LOAD    ( TASKING )                                         
                                                                
CR .( Standard System Loaded )                                  

With that mystery now resolved, I realize that I miss the days of bare-metal programming. As the arcana of the old is replaced with the arcana of the present we will continue to rediscover the past as we invent the future.

Filed under