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

PPT
4 - OOP - Taste of Smalltalk (VisualWorks)
PPT
3 - OOP - Runtime
PDF
OCaml Labs introduction at OCaml Consortium 2012
PDF
Intro to HTML5 Game Programming
PDF
Cloudstack collaboration conference Europe - SDN and Devops
PDF
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
4 - OOP - Taste of Smalltalk (VisualWorks)
3 - OOP - Runtime
OCaml Labs introduction at OCaml Consortium 2012
Intro to HTML5 Game Programming
Cloudstack collaboration conference Europe - SDN and Devops
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...

Viewers also liked (6)

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

Similar to 2 - OOP (20)

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

More from The World of Smalltalk (20)

PPT
PPT
12 virtualmachine
PPT
PPT
10 reflection
PPT
09 metaclasses
PPT
08 refactoring
PPT
07 bestpractice
PPT
PPT
PPT
03 standardclasses
PPT
Stoop sed-smells
PPT
Stoop sed-sharing ornot
PPT
Stoop sed-class initialization
PPT
Stoop sed-class initialization
PPT
Stoop metaclasses
PPT
Stoop ed-unit ofreuse
PPT
Stoop ed-subtyping subclassing
PPT
Stoop ed-some principles
PPT
12 virtualmachine
10 reflection
09 metaclasses
08 refactoring
07 bestpractice
03 standardclasses
Stoop sed-smells
Stoop sed-sharing ornot
Stoop sed-class initialization
Stoop sed-class initialization
Stoop metaclasses
Stoop ed-unit ofreuse
Stoop ed-subtyping subclassing
Stoop ed-some principles

Recently uploaded (20)

PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Cell Structure & Organelles in detailed.
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
Business Ethics Teaching Materials for college
PDF
RMMM.pdf make it easy to upload and study
PDF
Insiders guide to clinical Medicine.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
Pre independence Education in Inndia.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
2.FourierTransform-ShortQuestionswithAnswers.pdf
Final Presentation General Medicine 03-08-2024.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
human mycosis Human fungal infections are called human mycosis..pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Cell Structure & Organelles in detailed.
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Business Ethics Teaching Materials for college
RMMM.pdf make it easy to upload and study
Insiders guide to clinical Medicine.pdf
O7-L3 Supply Chain Operations - ICLT Program
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Microbial diseases, their pathogenesis and prophylaxis
STATICS OF THE RIGID BODIES Hibbelers.pdf
TR - Agricultural Crops Production NC III.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Pre independence Education in Inndia.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx

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