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
Ad

Recommended

4 - OOP - Taste of Smalltalk (VisualWorks)
4 - OOP - Taste of Smalltalk (VisualWorks)
The World of Smalltalk
 
3 - OOP - Runtime
3 - OOP - Runtime
The World of Smalltalk
 
1 - OOP
1 - OOP
The World of Smalltalk
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012
Anil Madhavapeddy
 
Intro to HTML5 Game Programming
Intro to HTML5 Game Programming
James Williams
 
Cloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and Devops
John Willis
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Jérôme Petazzoni
 
04 idioms
04 idioms
The World of Smalltalk
 
Concurrency in Smalltalk -- Beyond Threads
Concurrency in Smalltalk -- Beyond Threads
ESUG
 
8 - OOP - Syntax & Messages
8 - OOP - Syntax & Messages
The World of Smalltalk
 
02 basics
02 basics
The World of Smalltalk
 
5 - OOP - Smalltalk in a Nutshell (a)
5 - OOP - Smalltalk in a Nutshell (a)
The World of Smalltalk
 
13 traits
13 traits
The World of Smalltalk
 
05 seaside canvas
05 seaside canvas
The World of Smalltalk
 
3 - OOP - VisualWorks (a)
3 - OOP - VisualWorks (a)
The World of Smalltalk
 
3 - OOP - VisualWorks (b)
3 - OOP - VisualWorks (b)
The World of Smalltalk
 
Smalltalk In a Nutshell
Smalltalk In a Nutshell
Michele Lanza
 
01 intro
01 intro
The World of Smalltalk
 
Smalltalk speaks dot net
Smalltalk speaks dot net
ESUG
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - Long
Tomáš Kukol
 
Smalltalk and ruby - 2012-12-08
Smalltalk and ruby - 2012-12-08
Koan-Sin Tan
 
Exploring metaprogramming using Ruby language
Exploring metaprogramming using Ruby language
Harshal Hayatnagarkar
 
Smalltalk and Business
Smalltalk and Business
Mariano Martínez Peck
 
5 - OOP - Smalltalk in a Nutshell (b)
5 - OOP - Smalltalk in a Nutshell (b)
The World of Smalltalk
 
Smalltalk, the dynamic language
Smalltalk, the dynamic language
mohamedsamyali
 
From concept to cloud a look at modern software development
From concept to cloud a look at modern software development
Software Guru
 
4 - OOP - Taste of Smalltalk (Squeak)
4 - OOP - Taste of Smalltalk (Squeak)
The World of Smalltalk
 
Stoop 305-reflective programming5
Stoop 305-reflective programming5
The World of Smalltalk
 
7 - OOP - OO Concepts
7 - OOP - OO Concepts
The World of Smalltalk
 
3 - OOP - Squeak
3 - OOP - Squeak
The World of Smalltalk
 

More Related Content

Viewers also liked (6)

Concurrency in Smalltalk -- Beyond Threads
Concurrency in Smalltalk -- Beyond Threads
ESUG
 
8 - OOP - Syntax & Messages
8 - OOP - Syntax & Messages
The World of Smalltalk
 
02 basics
02 basics
The World of Smalltalk
 
5 - OOP - Smalltalk in a Nutshell (a)
5 - OOP - Smalltalk in a Nutshell (a)
The World of Smalltalk
 
13 traits
13 traits
The World of Smalltalk
 
05 seaside canvas
05 seaside canvas
The World of Smalltalk
 

Similar to 2 - OOP (20)

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

More from The World of Smalltalk (20)

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

Recently uploaded (20)

How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
How to Manage Multi Language for Invoice in Odoo 18
How to Manage Multi Language for Invoice in Odoo 18
Celine George
 
2025 June Year 9 Presentation: Subject selection.pptx
2025 June Year 9 Presentation: Subject selection.pptx
mansk2
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
Overview of Employee in Odoo 18 - Odoo Slides
Overview of Employee in Odoo 18 - Odoo Slides
Celine George
 
Nice Dream.pdf /
Nice Dream.pdf /
ErinUsher3
 
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
Celine George
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Measuring, learning and applying multiplication facts.
Measuring, learning and applying multiplication facts.
cgilmore6
 
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Rajdeep Bavaliya
 
How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
FIRST DAY HIGH orientation for mapeh subject in grade 10.pptx
FIRST DAY HIGH orientation for mapeh subject in grade 10.pptx
GlysdiEelesor1
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 
How to Manage Inventory Movement in Odoo 18 POS
How to Manage Inventory Movement in Odoo 18 POS
Celine George
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Rajdeep Bavaliya
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
How to Manage Multi Language for Invoice in Odoo 18
How to Manage Multi Language for Invoice in Odoo 18
Celine George
 
2025 June Year 9 Presentation: Subject selection.pptx
2025 June Year 9 Presentation: Subject selection.pptx
mansk2
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
Overview of Employee in Odoo 18 - Odoo Slides
Overview of Employee in Odoo 18 - Odoo Slides
Celine George
 
Nice Dream.pdf /
Nice Dream.pdf /
ErinUsher3
 
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
Celine George
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Measuring, learning and applying multiplication facts.
Measuring, learning and applying multiplication facts.
cgilmore6
 
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Rajdeep Bavaliya
 
How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
FIRST DAY HIGH orientation for mapeh subject in grade 10.pptx
FIRST DAY HIGH orientation for mapeh subject in grade 10.pptx
GlysdiEelesor1
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 
How to Manage Inventory Movement in Odoo 18 POS
How to Manage Inventory Movement in Odoo 18 POS
Celine George
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Rajdeep Bavaliya
 

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