The Smalltalk-76 Programming System – My original paper on Smalltalk-76. Describes the syntax. object model,
and design of the byte-coded virtual machine. Includes a sketch of the vm written in Smalltalk-76 itself.
Back to the Future: the Story of Squeak – Describes the design of Squeak, a commercial-grade Smalltalk written
in itself and made practical by compiling a subset of the language (“Slang”) to C.
The Evolution of Smalltalk from Smalltalk-72 through Squeak – A long paper (100 pages!) that I wrote for HOPL-2020.
This version includes corrections, and is a mixture of stories, technical details, and links to simulations and related work.
Here you will find various Smalltalk stories and artifacts that I have collected from years of building Smalltalk systems at Xerox, Apple, HP, and Disney. This collection began as background material for a paper that I wrote for the ACM’s History of Programming Languages conference in 2020. In addition to various papers, there are simulations of several generations of Smalltalk that you can run right here in your browser. This will give you some sense of how the user interface and programming tools evolved along with the progress of the language.
Smalltalk-78 – Smalltalk-78, a variant of Smalltalk-76 with in-line Contexts
Smalltalk-80 – Xerox and Apple versions of Smalltalk-80 as released
Squeak – Squeak Smalltalk with several graphic and sound demos
Etoys – Squeak was designed to be a vehicle for multimedia projects with iconic scripting on top of Smalltalk
Each of these Smalltalk artifacts is the work of many people that I can’t possibly include here, but they are duly acknowledged in the various papers cited, most particularly my HOPL paper, and Alan’s HOPL paper before it.
I am especially in debt in the creation of this site, to Robert Krahn for his work in creating the Lively Kernel and getting it installed at this site, to Vanessa Freudenberg for her work in writing SqueakJS and getting it to run well here, and to Hansen Hsu and David Brock for their interest and considerable support at the Computer History Museum.
Alto Smalltalk-72 completion
Projects – real or imagined
Although I got Smalltalk-78 to run on the 8086, we never spent any time living with it and making it work well. The two big holes are an incomplete integration of linear contexts, and absence of a process scheduler. The former simply needs some debugging. This is why the debugger does not work very well. Why don’t you give it a whirl?
Smalltlak-72 is a beautiful language kernel. Ever since the experience of writing the Smalltlak-76 virtual machine in itself, I have wanted to return to Smalltalk-72 and demonstrate its simplicity with a metacircular interpreter. In other words, to have the Smalltalk-72 interpreter written (and running!) in Smalltalk itself.
If you are serious about playing with this, make sure to copy it to another page, and feel free to contact me about it.
We have one complete working Smalltalk-76 system on an alto disk, and it would be great to give this the same attention that we gave to the NoteTaker Smalltalk. We could reuse most of the NoteTaker VM, and only need to extract the object memory from its OOZE files. Alternatively, we could port it forward into Smalltalk-78 after fixing its debugger. Probably more fun.
Most of these are preserved only as scanned printouts, though someone who is good at OCR could probably recover the text without too much trouble. Bootstraps are a place to start if you’re curious about the beginnings of each Smalltalk generation, or if you have a cool idea for an interpreter, but want some sort of starting library
ALLDEFS – Actual text of the bootstrap definitions for Smalltalk-72
MDefs – Scan of a similar bootstrap for St-74
launch.ft – Actual text of the last part of the St-74 bootstrap, analogous to the last part of ALLDEFS
SysDefs – Scan of the original St-76 sources cleaned up a couple of months after we got it running