Upload
loren-oconnor
View
212
Download
0
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
SmalltalkSmalltalk
Interpreted by Interpreted by Alan FrazierAlan Frazier
& Brian Sparks& 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.
Technical design factorsTechnical design factorsParadigmParadigmBinding timesBinding timesParameter passingParameter passingData typesData typesSimplicity & ReadabilitySimplicity & ReadabilityRuntime EfficiencyRuntime EfficiencyLibrary Support & Debugging helpLibrary Support & Debugging helpLongevity & PortabilityLongevity & Portability
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.
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
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’)
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.
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??
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!
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
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.
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