Smalltalk Mark Colangelo CMSC-631, Fall December 2002
History of Smalltalk Alan Kay designed and build the first OOP-based personal Computer called FLEX in In 1967 Simula 67 was designed In 1972 Alan Kay and other and XEROX PARC Created Smalltalk 72 with roots tied to Simula 67 Followed by Smalltalk 76 (Completely OOPL) Followed by Smalltalk 80 which became available as the first commercial release of Smalltalk
Smalltalk in the Real World Financial – Chubb – Chrysler – Dunn and Bradstreet, several other Manufacturing and Engineering – Texas Instruments – Romax (Simulation Software)
Free Implemenations of Smalltalk Squeak (Smalltalk for Win, Mac and others) – GNU Smalltalk (Unix systems only) –
Installation of Squeak Installation of Squeak is trivial Download zip file – Squeak3.2.image – Squeak3.2.changes – SqueakV3.sources – Squeak VM for your system, version 3.2 Doubleclick Squeak image. No other installation is required
Squeak Install Files
Squeak Desktop
Hello World
Exending Hello World hello 1 to: 3 do: [:i | (Transcript show: 'Hello World') cr] Gives: Hello World
Adding Logic to Hello World hello: times (times > 100) ifTrue: [ Transcript show: 'You will get bored!'] ifFalse: [1 to: times do: [:i | (Transcript show: 'Hello World') cr]]
Final Hello World hello: times say: text (times > 100) ifTrue: [ Transcript show: 'You will get bored!'] ifFalse: [1 to: times do: [:i | (Transcript show: text) cr]]
Syntax Observations Any variable can store any object. Object keeps track of what it is. Could pass an integer into the text parameter. No error until the Transcript tried to show it.
Messaging Always pass messages to an object the colon syntax for parameter passing looks a lot like the colon syntax for loops-- and logic, for that matter. That's because it's exactly the same. hello:say, ifTrue:ifFalse: and to:do are all messages.
Blocks of Code are Objects [:i | (Transcript show: text) cr] is an object Code block can be passed as an argument to to:do: Transcript is a global variable that contains an object which understands the show: message. In addition to show:, the Transcript object understands the message cr, which puts a newline in the Transcript window.
References Smalltalk home page – Squeak home page – Smalltalk Industry Council home page –