SlideShare a Scribd company logo
S.Ducasse 1
QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.
Stéphane Ducasse
Stephane.Ducasse@univ-savoie.fr
http://www.listic.univ-savoie.fr/~ducasse/
History and Concepts
S.Ducasse 2
Outline
• History
• Context
• Run-Time Architecture
• Concepts
• "Making simple things very simple and complex things
very possible." Alan Kay
S.Ducasse 3
Smalltalk: a State of Mind
• A small and uniform language:
• Syntax fits on one sheet of paper
• A large set of reusable classes
• Basic Data Structures, GUI classes, Database Access, Internet,
Graphics
• A set of powerful development tools
• Browsers, GUI Builders, Inspectors, Change Management Tools,
Crash Recovery Tools, Project Management Tools
• A run-time environment based on virtual machine technology
• Really Platform Independent
• Team Working Environment (releasing, versioning, deploying).
S.Ducasse 4
Smalltalk - The Inspiration
• Flex (Alan Kay, 1969)
• Lisp (Interpreter, Blocks, Garbage Collection)
• Turtle graphics (The Logo Project, Programming for
Children)
• Direct Manipulation Interfaces (Sketchpad,Alan Sutherland,
1960)
• NLS, (Doug Engelbart, 1968),“the augmentation of human
intellect”
• Simula (Classes and Message Sending)
– Description of real Phenomenons by means of a specification
language -> modelling
• Xerox PARC (Palo Alto Research Center)
• DynaBook: a Laptop Computer for Children
S.Ducasse 5
http://www.artmuseum.net/w2vr/archives/Kay/01_Dynabo
ok.html
Dynabook Mock
S.Ducasse 6
Smalltalk on Alto III
Alto: a Machine to Run Smalltalk
S.Ducasse 7
Precursor, Innovator &Visionary
• First to be based on Graphics
– Multi-Windowing Environment (Overlapping Windows)
– Integrated Development Environment
– -> Debugger, Compiler,Text Editor, Browser
• With a pointing Device->Yes, a Mouse
• Ideas were taken over
– Apple Lisa, Mac
– Microsoft Windows 1.0
• Virtual Machine -> Platform independent
• Garbage Collector -> Time for some real thinking...
• Just in Time Compilation
• Everything was there, the complete Source Code
S.Ducasse 8
The History
1960
1970
1980
1990
FORTRAN
Algol 60
COBOL
PL/1
Simula 67
Smalltalk 72
Smalltalk 80
Objective C
C
C++ Ada
Lisp
Pascal
Prolog
Modula-2
Modula-3
Oberon
ANSI C++
Self
Eiffel
Algol 68
Clu
Java Ada 95
CLOS
S.Ducasse 9
The History (Internal)
• 1972 - First Interpreter -> More Agents than Objects (every
object can specify its own syntax)
• 1976 - Redesign -> A Hierarchy of classes with a Unique
Root, Fixed Syntax, Compact Byte Code, Contexts,
Processes, Semaphores, Browsers, GUI Library. Projects:
ThingLab,Visual Programming Environment Programming by
Rehearsal.
• 1978 - NoteTaker Project, Experimentation with 8086
Microprocessor with only 256 KB RAM.
S.Ducasse 10
The History (External)
• 1980 - Smalltalk-80 (ASCII, cleaning primitives for portability,
Metaclasses, Blocks as first-class Objects, MVC). Projects:
Gallery Editor (mixing text, painting and animations) +
Alternate Reality Kit (physics simulation)
• 1981 - Books + 4 external virtual machines (Dec,Apple, HP
and Tektronix) -> GC by generation scavenging
• 1988 - Creation of Parc Place Systems
• 1992 - ANSI Draft
• 1995 - New Smalltalk implementations (MT, Dolphin, Squeak,
Smalltalk/X, GNU Smalltalk)
• 2000 - Fscript, GNU Smalltalk, SmallScript
• 2002 - Smalltalk as OS: 128k ram
S.Ducasse 11
Smalltalk’s Concepts
• Everything is an object (numbers, files, editors, compilers,
points, tools, boolean).
• Objects communicate only by message passing.
• Each object is an instance of one class (which is also an
object).
• A class defines the structure and the behavior of its
instances.
• Each object possesses its own set of values.
• Dynamic Typing.
• Purely based on late binding.
S.Ducasse 12
Messages and Methods
Message:What behavior to perform
aWorkstation accept: aPacket
aMonter eat: aCookie
Method: How to carry out the behaviour
accept: aPacket
(aPacket isAddressedTo: self)
ifTrue:[ Transcript show: 'A packet is accepted by
the Workstation ', self name asString]
ifFalse: [super accept: aPacket]
S.Ducasse 13
Objects and Classes
• Every object is an instance of a class
• A class specifies the structure and the behaviour of all
its instances
• Instances of a class share the same behavior and have
a specific state
• Classes are objects that create other instances
• Metaclasses are classes that create classes as instances
• Metaclasses describe class behaviour and state
(subclasses, method dictionary, instance variables...)
S.Ducasse 14
Smalltalk Run-Time Architecture
Virtual Machine + Image + Changes and Sources
Image = bytecodes
A bytethe vir
IMAGE2IMAGE2StandShar
IMAGE1.IMAGE1.
All the objeat a momen
One per us
+
S.Ducasse 15
Smalltalk Run-Time Architecture
• The byte-code is in fact translated into native code by a
just-in-time compiler.
• The source and the changes are not necessary for
interpreting the byte-code, this is just for the
development. Normally they are removed for
deployment.
• An application can be delivered as some byte-code files
that will be executed with aVM.The development image
is stripped to remove the unnecessary development
components.
S.Ducasse 16
Summary
Had a major impact: Java, Ruby, C#
Simple and consistent model
Everything is an object
All computation is made by sending message
Classes, Single inheritance, public methods, private
attributes
Uniform syntax
Not an old language
Still one of the most elegant, simple, uniform prue
object-oriented language

More Related Content

Viewers also liked (6)

PDF
Concurrency in Smalltalk -- Beyond Threads
ESUG
 
PPT
8 - OOP - Syntax & Messages
The World of Smalltalk
 
PPT
5 - OOP - Smalltalk in a Nutshell (a)
The World of Smalltalk
 
PDF
05 seaside canvas
The World of Smalltalk
 
Concurrency in Smalltalk -- Beyond Threads
ESUG
 
8 - OOP - Syntax & Messages
The World of Smalltalk
 
5 - OOP - Smalltalk in a Nutshell (a)
The World of Smalltalk
 
05 seaside canvas
The World of Smalltalk
 

Similar to 2 - OOP (20)

PPT
3 - OOP - VisualWorks (a)
The World of Smalltalk
 
PPT
3 - OOP - VisualWorks (b)
The World of Smalltalk
 
PDF
Smalltalk In a Nutshell
Michele Lanza
 
PPT
Smalltalk speaks dot net
ESUG
 
PDF
Agile Development with Smalltalk - Long
Tomáš Kukol
 
PDF
Smalltalk and ruby - 2012-12-08
Koan-Sin Tan
 
PPTX
Exploring metaprogramming using Ruby language
Harshal Hayatnagarkar
 
PDF
Smalltalk and Business
Mariano Martínez Peck
 
PPT
5 - OOP - Smalltalk in a Nutshell (b)
The World of Smalltalk
 
PDF
Smalltalk, the dynamic language
mohamedsamyali
 
PDF
From concept to cloud a look at modern software development
Software Guru
 
PPT
4 - OOP - Taste of Smalltalk (Squeak)
The World of Smalltalk
 
PPT
Stoop 305-reflective programming5
The World of Smalltalk
 
PPT
7 - OOP - OO Concepts
The World of Smalltalk
 
PPT
3 - OOP - Squeak
The World of Smalltalk
 
PDF
F-Script
ESUG
 
PPT
4 - OOP - Taste of Smalltalk (Tamagoshi)
The World of Smalltalk
 
PDF
Evolution of Programming Languages.pdf
Madurai Kamaraj University Madurai Tamil Nadu India
 
PDF
Evolution of Programming Languages.pdf
Madurai Kamaraj University Madurai Tamil Nadu India
 
3 - OOP - VisualWorks (a)
The World of Smalltalk
 
3 - OOP - VisualWorks (b)
The World of Smalltalk
 
Smalltalk In a Nutshell
Michele Lanza
 
Smalltalk speaks dot net
ESUG
 
Agile Development with Smalltalk - Long
Tomáš Kukol
 
Smalltalk and ruby - 2012-12-08
Koan-Sin Tan
 
Exploring metaprogramming using Ruby language
Harshal Hayatnagarkar
 
Smalltalk and Business
Mariano Martínez Peck
 
5 - OOP - Smalltalk in a Nutshell (b)
The World of Smalltalk
 
Smalltalk, the dynamic language
mohamedsamyali
 
From concept to cloud a look at modern software development
Software Guru
 
4 - OOP - Taste of Smalltalk (Squeak)
The World of Smalltalk
 
Stoop 305-reflective programming5
The World of Smalltalk
 
7 - OOP - OO Concepts
The World of Smalltalk
 
3 - OOP - Squeak
The World of Smalltalk
 
F-Script
ESUG
 
4 - OOP - Taste of Smalltalk (Tamagoshi)
The World of Smalltalk
 
Evolution of Programming Languages.pdf
Madurai Kamaraj University Madurai Tamil Nadu India
 
Evolution of Programming Languages.pdf
Madurai Kamaraj University Madurai Tamil Nadu India
 
Ad

More from The World of Smalltalk (20)

PPT
99 questions
The World of Smalltalk
 
PPT
12 virtualmachine
The World of Smalltalk
 
PPT
11 bytecode
The World of Smalltalk
 
PPT
10 reflection
The World of Smalltalk
 
PPT
09 metaclasses
The World of Smalltalk
 
PPT
08 refactoring
The World of Smalltalk
 
PPT
07 bestpractice
The World of Smalltalk
 
PPT
06 debugging
The World of Smalltalk
 
PPT
05 seaside
The World of Smalltalk
 
PPT
03 standardclasses
The World of Smalltalk
 
PPT
Stoop sed-smells
The World of Smalltalk
 
PPT
Stoop sed-sharing ornot
The World of Smalltalk
 
PPT
Stoop sed-class initialization
The World of Smalltalk
 
PPT
Stoop sed-class initialization
The World of Smalltalk
 
PPT
Stoop metaclasses
The World of Smalltalk
 
PPT
Stoop ed-unit ofreuse
The World of Smalltalk
 
PPT
Stoop ed-subtyping subclassing
The World of Smalltalk
 
PPT
Stoop ed-some principles
The World of Smalltalk
 
PPT
Stoop ed-lod
The World of Smalltalk
 
PPT
Stoop ed-inheritance composition
The World of Smalltalk
 
12 virtualmachine
The World of Smalltalk
 
10 reflection
The World of Smalltalk
 
09 metaclasses
The World of Smalltalk
 
08 refactoring
The World of Smalltalk
 
07 bestpractice
The World of Smalltalk
 
03 standardclasses
The World of Smalltalk
 
Stoop sed-smells
The World of Smalltalk
 
Stoop sed-sharing ornot
The World of Smalltalk
 
Stoop sed-class initialization
The World of Smalltalk
 
Stoop sed-class initialization
The World of Smalltalk
 
Stoop metaclasses
The World of Smalltalk
 
Stoop ed-unit ofreuse
The World of Smalltalk
 
Stoop ed-subtyping subclassing
The World of Smalltalk
 
Stoop ed-some principles
The World of Smalltalk
 
Stoop ed-inheritance composition
The World of Smalltalk
 
Ad

Recently uploaded (20)

PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPTX
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PDF
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 

2 - OOP

  • 1. S.Ducasse 1 QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture. Stéphane Ducasse [email protected] http://www.listic.univ-savoie.fr/~ducasse/ History and Concepts
  • 2. S.Ducasse 2 Outline • History • Context • Run-Time Architecture • Concepts • "Making simple things very simple and complex things very possible." Alan Kay
  • 3. S.Ducasse 3 Smalltalk: a State of Mind • A small and uniform language: • Syntax fits on one sheet of paper • A large set of reusable classes • Basic Data Structures, GUI classes, Database Access, Internet, Graphics • A set of powerful development tools • Browsers, GUI Builders, Inspectors, Change Management Tools, Crash Recovery Tools, Project Management Tools • A run-time environment based on virtual machine technology • Really Platform Independent • Team Working Environment (releasing, versioning, deploying).
  • 4. S.Ducasse 4 Smalltalk - The Inspiration • Flex (Alan Kay, 1969) • Lisp (Interpreter, Blocks, Garbage Collection) • Turtle graphics (The Logo Project, Programming for Children) • Direct Manipulation Interfaces (Sketchpad,Alan Sutherland, 1960) • NLS, (Doug Engelbart, 1968),“the augmentation of human intellect” • Simula (Classes and Message Sending) – Description of real Phenomenons by means of a specification language -> modelling • Xerox PARC (Palo Alto Research Center) • DynaBook: a Laptop Computer for Children
  • 6. S.Ducasse 6 Smalltalk on Alto III Alto: a Machine to Run Smalltalk
  • 7. S.Ducasse 7 Precursor, Innovator &Visionary • First to be based on Graphics – Multi-Windowing Environment (Overlapping Windows) – Integrated Development Environment – -> Debugger, Compiler,Text Editor, Browser • With a pointing Device->Yes, a Mouse • Ideas were taken over – Apple Lisa, Mac – Microsoft Windows 1.0 • Virtual Machine -> Platform independent • Garbage Collector -> Time for some real thinking... • Just in Time Compilation • Everything was there, the complete Source Code
  • 8. S.Ducasse 8 The History 1960 1970 1980 1990 FORTRAN Algol 60 COBOL PL/1 Simula 67 Smalltalk 72 Smalltalk 80 Objective C C C++ Ada Lisp Pascal Prolog Modula-2 Modula-3 Oberon ANSI C++ Self Eiffel Algol 68 Clu Java Ada 95 CLOS
  • 9. S.Ducasse 9 The History (Internal) • 1972 - First Interpreter -> More Agents than Objects (every object can specify its own syntax) • 1976 - Redesign -> A Hierarchy of classes with a Unique Root, Fixed Syntax, Compact Byte Code, Contexts, Processes, Semaphores, Browsers, GUI Library. Projects: ThingLab,Visual Programming Environment Programming by Rehearsal. • 1978 - NoteTaker Project, Experimentation with 8086 Microprocessor with only 256 KB RAM.
  • 10. S.Ducasse 10 The History (External) • 1980 - Smalltalk-80 (ASCII, cleaning primitives for portability, Metaclasses, Blocks as first-class Objects, MVC). Projects: Gallery Editor (mixing text, painting and animations) + Alternate Reality Kit (physics simulation) • 1981 - Books + 4 external virtual machines (Dec,Apple, HP and Tektronix) -> GC by generation scavenging • 1988 - Creation of Parc Place Systems • 1992 - ANSI Draft • 1995 - New Smalltalk implementations (MT, Dolphin, Squeak, Smalltalk/X, GNU Smalltalk) • 2000 - Fscript, GNU Smalltalk, SmallScript • 2002 - Smalltalk as OS: 128k ram
  • 11. S.Ducasse 11 Smalltalk’s Concepts • Everything is an object (numbers, files, editors, compilers, points, tools, boolean). • Objects communicate only by message passing. • Each object is an instance of one class (which is also an object). • A class defines the structure and the behavior of its instances. • Each object possesses its own set of values. • Dynamic Typing. • Purely based on late binding.
  • 12. S.Ducasse 12 Messages and Methods Message:What behavior to perform aWorkstation accept: aPacket aMonter eat: aCookie Method: How to carry out the behaviour accept: aPacket (aPacket isAddressedTo: self) ifTrue:[ Transcript show: 'A packet is accepted by the Workstation ', self name asString] ifFalse: [super accept: aPacket]
  • 13. S.Ducasse 13 Objects and Classes • Every object is an instance of a class • A class specifies the structure and the behaviour of all its instances • Instances of a class share the same behavior and have a specific state • Classes are objects that create other instances • Metaclasses are classes that create classes as instances • Metaclasses describe class behaviour and state (subclasses, method dictionary, instance variables...)
  • 14. S.Ducasse 14 Smalltalk Run-Time Architecture Virtual Machine + Image + Changes and Sources Image = bytecodes A bytethe vir IMAGE2IMAGE2StandShar IMAGE1.IMAGE1. All the objeat a momen One per us +
  • 15. S.Ducasse 15 Smalltalk Run-Time Architecture • The byte-code is in fact translated into native code by a just-in-time compiler. • The source and the changes are not necessary for interpreting the byte-code, this is just for the development. Normally they are removed for deployment. • An application can be delivered as some byte-code files that will be executed with aVM.The development image is stripped to remove the unnecessary development components.
  • 16. S.Ducasse 16 Summary Had a major impact: Java, Ruby, C# Simple and consistent model Everything is an object All computation is made by sending message Classes, Single inheritance, public methods, private attributes Uniform syntax Not an old language Still one of the most elegant, simple, uniform prue object-oriented language