SlideShare ist ein Scribd-Unternehmen logo
1 von 16
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

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (6)

Concurrency in Smalltalk -- Beyond Threads
Concurrency in Smalltalk -- Beyond ThreadsConcurrency in Smalltalk -- Beyond Threads
Concurrency in Smalltalk -- Beyond Threads
 
8 - OOP - Syntax & Messages
8 - OOP - Syntax & Messages8 - OOP - Syntax & Messages
8 - OOP - Syntax & Messages
 
02 basics
02 basics02 basics
02 basics
 
5 - OOP - Smalltalk in a Nutshell (a)
5 - OOP - Smalltalk in a Nutshell (a)5 - OOP - Smalltalk in a Nutshell (a)
5 - OOP - Smalltalk in a Nutshell (a)
 
13 traits
13 traits13 traits
13 traits
 
05 seaside canvas
05 seaside canvas05 seaside canvas
05 seaside canvas
 

Ähnlich wie 2 - OOP

OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015Mark Voelker
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013Michael Lessard
 
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah Bard
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah BardUsing Containers and HPC to Solve the Mysteries of the Universe by Deborah Bard
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah BardDocker, Inc.
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containersRed Hat Developers
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
 
Containers #101 Meetup: Containers & OpenStack
Containers #101 Meetup: Containers & OpenStack Containers #101 Meetup: Containers & OpenStack
Containers #101 Meetup: Containers & OpenStack Brittany Ingram
 
Cohesion Techsessie Docker - Daniel Palstra
Cohesion Techsessie Docker - Daniel PalstraCohesion Techsessie Docker - Daniel Palstra
Cohesion Techsessie Docker - Daniel PalstraDaniel Palstra
 
Tech talk on docker with demo
Tech talk on docker with demoTech talk on docker with demo
Tech talk on docker with demoSandeep Karnawat
 
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...Docker, Inc.
 
The Rise of the Container: The Dev/Ops Technology That Accelerates Ops/Dev
The Rise of the Container:  The Dev/Ops Technology That Accelerates Ops/DevThe Rise of the Container:  The Dev/Ops Technology That Accelerates Ops/Dev
The Rise of the Container: The Dev/Ops Technology That Accelerates Ops/DevRobert Starmer
 
Running DSpace: Technical overview, lessons learned, workflows and essential ...
Running DSpace: Technical overview, lessons learned, workflows and essential ...Running DSpace: Technical overview, lessons learned, workflows and essential ...
Running DSpace: Technical overview, lessons learned, workflows and essential ...ILRI
 

Ähnlich wie 2 - OOP (20)

OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015
 
Docker Presentation
Docker PresentationDocker Presentation
Docker Presentation
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah Bard
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah BardUsing Containers and HPC to Solve the Mysteries of the Universe by Deborah Bard
Using Containers and HPC to Solve the Mysteries of the Universe by Deborah Bard
 
Docker & Daily DevOps
Docker & Daily DevOpsDocker & Daily DevOps
Docker & Daily DevOps
 
Docker and-daily-devops
Docker and-daily-devopsDocker and-daily-devops
Docker and-daily-devops
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
 
7 - OOP - OO Concepts
7 - OOP - OO Concepts7 - OOP - OO Concepts
7 - OOP - OO Concepts
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
 
Containers #101 Meetup: Containers & OpenStack
Containers #101 Meetup: Containers & OpenStack Containers #101 Meetup: Containers & OpenStack
Containers #101 Meetup: Containers & OpenStack
 
Cohesion Techsessie Docker - Daniel Palstra
Cohesion Techsessie Docker - Daniel PalstraCohesion Techsessie Docker - Daniel Palstra
Cohesion Techsessie Docker - Daniel Palstra
 
Tech talk on docker with demo
Tech talk on docker with demoTech talk on docker with demo
Tech talk on docker with demo
 
Java developer intro to environment management with vagrant puppet and docker
Java developer intro to environment management with vagrant puppet and dockerJava developer intro to environment management with vagrant puppet and docker
Java developer intro to environment management with vagrant puppet and docker
 
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
 
Docker.ppt
Docker.pptDocker.ppt
Docker.ppt
 
The Rise of the Container: The Dev/Ops Technology That Accelerates Ops/Dev
The Rise of the Container:  The Dev/Ops Technology That Accelerates Ops/DevThe Rise of the Container:  The Dev/Ops Technology That Accelerates Ops/Dev
The Rise of the Container: The Dev/Ops Technology That Accelerates Ops/Dev
 
Running DSpace: Technical overview, lessons learned, workflows and essential ...
Running DSpace: Technical overview, lessons learned, workflows and essential ...Running DSpace: Technical overview, lessons learned, workflows and essential ...
Running DSpace: Technical overview, lessons learned, workflows and essential ...
 

Mehr von The World of Smalltalk (20)

99 questions
99 questions99 questions
99 questions
 
12 virtualmachine
12 virtualmachine12 virtualmachine
12 virtualmachine
 
11 bytecode
11 bytecode11 bytecode
11 bytecode
 
10 reflection
10 reflection10 reflection
10 reflection
 
09 metaclasses
09 metaclasses09 metaclasses
09 metaclasses
 
08 refactoring
08 refactoring08 refactoring
08 refactoring
 
07 bestpractice
07 bestpractice07 bestpractice
07 bestpractice
 
06 debugging
06 debugging06 debugging
06 debugging
 
05 seaside
05 seaside05 seaside
05 seaside
 
03 standardclasses
03 standardclasses03 standardclasses
03 standardclasses
 
01 intro
01 intro01 intro
01 intro
 
Stoop sed-smells
Stoop sed-smellsStoop sed-smells
Stoop sed-smells
 
Stoop sed-sharing ornot
Stoop sed-sharing ornotStoop sed-sharing ornot
Stoop sed-sharing ornot
 
Stoop sed-class initialization
Stoop sed-class initializationStoop sed-class initialization
Stoop sed-class initialization
 
Stoop sed-class initialization
Stoop sed-class initializationStoop sed-class initialization
Stoop sed-class initialization
 
Stoop metaclasses
Stoop metaclassesStoop metaclasses
Stoop metaclasses
 
Stoop ed-unit ofreuse
Stoop ed-unit ofreuseStoop ed-unit ofreuse
Stoop ed-unit ofreuse
 
Stoop ed-subtyping subclassing
Stoop ed-subtyping subclassingStoop ed-subtyping subclassing
Stoop ed-subtyping subclassing
 
Stoop ed-some principles
Stoop ed-some principlesStoop ed-some principles
Stoop ed-some principles
 
Stoop ed-lod
Stoop ed-lodStoop ed-lod
Stoop ed-lod
 

Kürzlich hochgeladen

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 

Kürzlich hochgeladen (20)

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 

2 - OOP

  • 1. 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
  • 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