12
Smalltalk Smalltalk Interpreted by Interpreted by Alan Frazier Alan Frazier & Brian Sparks & Brian Sparks

Smalltalk Interpreted by Alan Frazier & Brian Sparks

Embed Size (px)

DESCRIPTION

Technical design factors Paradigm Binding times Parameter passing Data types Simplicity & Readability Runtime Efficiency Library Support & Debugging help Longevity & Portability

Citation preview

Page 1: Smalltalk Interpreted by Alan Frazier & Brian Sparks

SmalltalkSmalltalk

Interpreted by Interpreted by Alan FrazierAlan Frazier

& Brian Sparks& Brian Sparks

Page 2: Smalltalk Interpreted by Alan Frazier & Brian Sparks

HistoryHistory

Smalltalk was originally designed as a PL that Smalltalk was originally designed as a PL that would be easy to learn. One of it’s original design would be easy to learn. One of it’s original design intentions was to be a learning environment for intentions was to be a learning environment for children.children.It is used for application development & for It is used for application development & for teaching purposes.teaching purposes.11stst language to support a multi-window GUI. language to support a multi-window GUI.

Page 3: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Technical design factorsTechnical design factorsParadigmParadigmBinding timesBinding timesParameter passingParameter passingData typesData typesSimplicity & ReadabilitySimplicity & ReadabilityRuntime EfficiencyRuntime EfficiencyLibrary Support & Debugging helpLibrary Support & Debugging helpLongevity & PortabilityLongevity & Portability

Page 4: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Paradigms & BindingParadigms & Binding

Smalltalk is known mainly for it’s efforts to Smalltalk is known mainly for it’s efforts to be as object oriented as possible.be as object oriented as possible.Quite possibly the epitome of the object Quite possibly the epitome of the object oriented paradigm.oriented paradigm.

Smalltalk is an interpreted language, like Smalltalk is an interpreted language, like Perl.Perl.It also uses dynamic binding, a trait It also uses dynamic binding, a trait common to most interpreted languages.common to most interpreted languages.

Page 5: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Parameter PassingParameter Passing

Smalltalk uses messages to pass Smalltalk uses messages to pass information to objects & to get them to information to objects & to get them to follow certain behaviors specific to that follow certain behaviors specific to that object.object.

Ex1: 5 factorialEx1: 5 factorialEx2: ‘hello’ sizeEx2: ‘hello’ size

Page 6: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Data Types Data Types

As mentioned before, all data are As mentioned before, all data are encapsulated into objects.encapsulated into objects.Fundamental Data Types, ‘literals’:Fundamental Data Types, ‘literals’: String: ‘hello’ ‘string’ ‘bob’ ‘%@#^|\’String: ‘hello’ ‘string’ ‘bob’ ‘%@#^|\’ Number: 123 -234 ¾ -½ 4.567 -2.34e10 Number: 123 -234 ¾ -½ 4.567 -2.34e10 Character: $Y $G $@Character: $Y $G $@ Symbol: #name #+ #at:put:Symbol: #name #+ #at:put: Array: #(1 2 3 4) #(1 ‘two’ $Y) #(‘ab’ ‘cd’ ‘ef’)Array: #(1 2 3 4) #(1 ‘two’ $Y) #(‘ab’ ‘cd’ ‘ef’)

Page 7: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Simplicity & ReadabilitySimplicity & Readability

Smalltalk syntax consists of:Smalltalk syntax consists of: Statements (cascaded statements)Statements (cascaded statements) AssignmentsAssignments CommentsComments Temporary variablesTemporary variables Blocks of codeBlocks of code

Has a readable syntax and is considered a Has a readable syntax and is considered a literate language by some.literate language by some.

Page 8: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Runtime EfficiencyRuntime Efficiency

It’s an interpreted PL,It’s an interpreted PL, With dynamic binding,With dynamic binding,& no type declarations.& no type declarations. What do you expect??What do you expect??

Page 9: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Library Support & Debugging HelpLibrary Support & Debugging Help

A multitude of free class libraries can be A multitude of free class libraries can be found on the web.found on the web.

Native Smalltalk debugging tools, Oh Yea!Native Smalltalk debugging tools, Oh Yea!

Page 10: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Longevity & PortabilityLongevity & PortabilityRinse, Wash, Repeat!Rinse, Wash, Repeat!Currently a hot product for prototyping.Currently a hot product for prototyping.

Many commercial & free implementations:Many commercial & free implementations: GNU SmalltalkGNU Smalltalk SqueakSqueak IBMIBM ObjectShareObjectShare

Page 11: Smalltalk Interpreted by Alan Frazier & Brian Sparks

Closing CommentsClosing CommentsOur programOur program

Smalltalk is definitely a niche language. It Smalltalk is definitely a niche language. It does have it’s high points and is very does have it’s high points and is very useful for certain applications.useful for certain applications.

Its popularity is growing and it is being Its popularity is growing and it is being used for more commercial projects and used for more commercial projects and may become more prominent in the future.may become more prominent in the future.

Page 12: Smalltalk Interpreted by Alan Frazier & Brian Sparks

ReferencesReferenceshttp://http://cgibin.erols.comcgibin.erols.comhttp://www.object-arts.comhttp://www.object-arts.comhttp://www.cs.ucf.edu/courses/cop4331/huhttp://www.cs.ucf.edu/courses/cop4331/hughes/Summer1998/Tutorials/Smalltalk/oopghes/Summer1998/Tutorials/Smalltalk/oop.html.htmlhttp://www.s-direktnet.de/homepages/neuhttp://www.s-direktnet.de/homepages/neumann/lang_cmp.en.htmmann/lang_cmp.en.htmhttp://www.dylanworld.com/advocacy/comhttp://www.dylanworld.com/advocacy/competitive.htmlpetitive.html