[squeak-dev] Smalltalk pre-80 (circa 1975)

David T. Lewis lewis at mail.msen.com
Wed Dec 14 04:01:38 UTC 2011


On Tue, Dec 13, 2011 at 06:05:46PM -0800, Casey Ransberger wrote:
> I found something which may be of interest to the historically inclined. I had yet to encounter a substantial amount of code from any period before Smalltalk started looking like Smalltalk-80, until tonight. Not sure how I found it, as I forgot all about what I was doing when I did (easily distracted by shiny things.)
> 
> This looks like a pot of gold where value is what satisfies curiosity. 
> 
> http://www.bitsavers.org/pdf/xerox/
> 
> There's code from '75 (if the docs are labeled accurately) in the Smalltalk directory... but I'm currently a bit distracted by the Alto directory:)
> 
> Thought I'd share. 

Thanks for this!

And as long as you are digging through those old BCPL references
in the Alto directory, you will probably want to get an up to date
manual and compiler, which are available from Martin Richards'
home page at http://www.cl.cam.ac.uk/~mr10/index.html. The manual
is worth a look, see http://www.cl.cam.ac.uk/users/mr/bcplman.pdf.

Modern Squeak translates itself into C, but the early Smalltalk
machines appear to have been hosted on BCPL. C works perfectly
well as an assembly language for the VM, but BCPL would work
nicely also, and to me BCPL has a nice synergy with Squeak in
several ways. First, like Squeak it allows complex systems to be
built on top of a rediculously small set of core concepts and syntax
rules.  Second, like Squeak it supports (but is not limited to)
a bytecode interpreted virtual machine running on top of a memory
system that essentially amounts to a big array of 32-bit (or 16-bit
or 64-bit etc) memory words. In Squeak, the object memory is built
on top of the big array of 32-bit memory words, and in BCPL the
same is done, except that the memory words represent data and
pointers and such.

If I had an endless supply of free weekends for Sunday Squeaking,
I would want to make a BCPLCodeGenerator to go along with the
current CCodeGenerator in VMMaker, such that we could generate
a Squeak VM that would run on top of Martin Richards' BCPL runtime.
And on the flip side, I would want to make an interpreter for
the Cintcode bytecode that can be generated from BCPL. It would
be nice to see a Squeak running on top of Martin Richards' BCPL
and Cintpos runtime, and it would be nice to see BCPL compilers,
programs, and the Cintpos runtime hosted on Squeak.

In case you may be thinking that BCPL is a dead language (after
all, that is what people have been saying about Smalltalk for a
long time), I can personally confirm that BCPL is currently in
use in a little-known but significant real-time industrial control
application at a major industrial corporation. The application is
fast, reliable, and flexible, and to this day it remains a great
improvement over its successors.

Dave 




More information about the Squeak-dev mailing list