"Protect me from what i want" - Jenny Holzer

Bob Arning arning at charm.net
Sat Feb 24 16:22:08 UTC 2001


On Sat, 24 Feb 2001 12:31:38 -0300 Walter Moreira <walterm at cmat.edu.uy> wrote:
>I have read some tutorials and browse the chapters 27 to 30 from the so
>called 'Blue Book'. But I agree with Alek Markarian about the chicken and
>egg. What is the minimal Smalltalk kernel you can't implement in Smalltalk
>itself? Which are the primitive classes? I couldn't understand this from the
>blue book.

Walter,

There are no primitive classes per se - all classes are visible in Smalltalk and look the same whether they are the most elemental or most complex. What makes some classes special is that the VM is aware of their identity (things like SmallInteger, String, Array, etc). A list of these and other objects required for the VM to function is found in 

	Smalltalk specialObjectsArray

The minimal kernel that you are looking for would be the primitive methods. These are the methods that are implemented in the VM and which do the actual work involved in rearranging bits and bytes to produce the desired result. You can see these by doing:

	Smalltalk browseAllSelect: [ :m | m primitive between: 1 and: 255]

You can see the Squeak code describing these (from which the VM is built) by looking at the class Interpreter. There are tons of methods there whose name begins with 'primitive'.

BTW, chapter 29 in the Blue Book is an explanation of these as they existed in ST-80.

Cheers,
Bob





More information about the Squeak-dev mailing list