Smalltalk Mark Colangelo CMSC-631, Fall 2002 10 December 2002.
-
Upload
gilbert-bradley -
Category
Documents
-
view
216 -
download
0
Transcript of Smalltalk Mark Colangelo CMSC-631, Fall 2002 10 December 2002.
SmalltalkSmalltalk
Mark Colangelo
CMSC-631, Fall 2002
10 December 2002
History of SmalltalkHistory of Smalltalk
Alan Kay designed and build the first OOP-based personal Computer called FLEX in 1967-68
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 WorldSmalltalk in the Real World
Financial– Chubb– Chrysler– Dunn and Bradstreet, several other
Manufacturing and Engineering– Texas Instruments– Romax (Simulation Software)
Free Implemenations of Free Implemenations of SmalltalkSmalltalk
Squeak (Smalltalk for Win , Mac and others)– http://www.squeak.org/download/index.html
GNU Smalltalk (Unix systems only) – http://www.gnu.org/software/smalltalk/smalltalk.html
Installation of SqueakInstallation of Squeak
Installation of Squeak is trivialDownload 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 FilesSqueak Install Files
Squeak DesktopSqueak Desktop
Hello WorldHello World
Exending Hello WorldExending Hello World
hello1 to: 3 do: [:i | (Transcript show: 'Hello
World') cr]
Gives:Hello WorldHello WorldHello World
Adding Logic to Hello WorldAdding 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 WorldFinal 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 ObservationsSyntax 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.
MessagingMessaging
Always pass messages to an objectthe 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 ObjectsBlocks 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.
ReferencesReferences
Smalltalk home page– www.smalltalk.org
Squeak home page– www.squeak.org
Smalltalk Industry Council home page– www.whysmalltalk.com