Smalltalk Compiler

Let's see, just how many smalltalk compilers are there...

Ralph Johnson did something with Typed Smalltalk

Parc Place Highly Portable Smalltalk translates bytecodes to machine code

Digitalk compiles in some versions

IBM's Visual Age

Eliot Miranda wrote one for fun

The Squeak project (see Squeak Smalltalk):
born at Apple, lives at Disney

Refactory Browser Parser (not a whole compiler, but PD)

Anthony Lander made one (after Wilf Lalonde taught him how)

Hal Hildebrand is working on a new one for Squeak

Smalltalk MT is Windows-only (www.objectconnect.com )

Pocket Smalltalk www.pocketsmalltalk.com

Ambrai Smalltalk for MacOsX

Smalltalk Ecks (Smalltalk/X) started as a ST to C compiler, supports inline C, and methods compiles to native Byte Code, JIT or native MC code.

And GNU Smalltalk has a compiler written in C, to bootstrap the system, and one written in Smalltalk. So it counts for two!


By "compiler", do you mean "any implementation" or do you intend some distinction from the usual bytecode interpreter? As I understand it, Dolphin is a bytecode interpreter. -- Dave Harris

And how do you get bytecodes from source text?

That's why I asked the question - bytecode interpreters include compilers too. If we include them, then the title refers to "any implementation." Is that the answer? -- Dave Harris

An implementation might have more than one compiler (GNU Smalltalk, for example, has two compilers). In theory, two implementations might share the same compiler (in that case they either have compatible bytecodes or the compiler has two back-ends). -- Stephan Houben


Let's not forget Enfin Smalltalk. I hesitate to describe it as a Smalltalk Compiler, because I don't believe it ever emitted bytecodes (it instead invoked functions in a library of C routines), but it did accept something like Smalltalk source code as input, and caused something to happen in response.

Kent Beck is rumored (though this may be apocryphal) to have described Enfin Smalltalk as what would happen if a bunch of Martians implemented Smalltalk from the Blue Book spec, but with no knowledge of Smalltalk culture and idiom.


The term "compiler" is probably misleading in the Smalltalk context. Most Smalltalk compilers are part of their respective environments and of little use without. So when you ask for one of those "compilers", you usually get it with a big class library, UI-framework, IDE, Debugger and much more. Exceptions to this are probably the Smalltalk# compiler from refactory.inc and the stc compiler used in Smalltalk Ecks (someone to name more ?).


See original on c2.com