SlideShare a Scribd company logo
1 of 16
Download to read offline
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

Viewers also liked (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
 

Similar to 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
 

Similar to 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 ...
 

More from 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
 

Recently uploaded

LEAD5623 The Economics of Community Coll
LEAD5623 The Economics of Community CollLEAD5623 The Economics of Community Coll
LEAD5623 The Economics of Community CollDr. Bruce A. Johnson
 
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...AKSHAYMAGAR17
 
AI Uses and Misuses: Academic and Workplace Applications
AI Uses and Misuses: Academic and Workplace ApplicationsAI Uses and Misuses: Academic and Workplace Applications
AI Uses and Misuses: Academic and Workplace ApplicationsStella Lee
 
Awards Presentation 2024 - March 12 2024
Awards Presentation 2024 - March 12 2024Awards Presentation 2024 - March 12 2024
Awards Presentation 2024 - March 12 2024bsellato
 
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdf
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdfPHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdf
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdfSumit Tiwari
 
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...Marlene Maheu
 
EDD8524 The Future of Educational Leader
EDD8524 The Future of Educational LeaderEDD8524 The Future of Educational Leader
EDD8524 The Future of Educational LeaderDr. Bruce A. Johnson
 
The First National K12 TUG March 6 2024.pdf
The First National K12 TUG March 6 2024.pdfThe First National K12 TUG March 6 2024.pdf
The First National K12 TUG March 6 2024.pdfdogden2
 
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...gdgsurrey
 
Quantitative research methodology and survey design
Quantitative research methodology and survey designQuantitative research methodology and survey design
Quantitative research methodology and survey designBalelaBoru
 
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in Pharmacy
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in PharmacyASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in Pharmacy
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in PharmacySumit Tiwari
 
UNIT I Design Thinking and Explore.pptx
UNIT I  Design Thinking and Explore.pptxUNIT I  Design Thinking and Explore.pptx
UNIT I Design Thinking and Explore.pptxGOWSIKRAJA PALANISAMY
 
LEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudLEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudDr. Bruce A. Johnson
 
Research Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchResearch Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchRushdi Shams
 
Metabolism of lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptx
Metabolism of  lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptxMetabolism of  lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptx
Metabolism of lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptxDr. Santhosh Kumar. N
 
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.docdieu18
 
POST ENCEPHALITIS case study Jitendra bhargav
POST ENCEPHALITIS case study  Jitendra bhargavPOST ENCEPHALITIS case study  Jitendra bhargav
POST ENCEPHALITIS case study Jitendra bhargavJitendra Bhargav
 
Pharmacology chapter No 7 full notes.pdf
Pharmacology chapter No 7 full notes.pdfPharmacology chapter No 7 full notes.pdf
Pharmacology chapter No 7 full notes.pdfSumit Tiwari
 
Auchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsAuchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsDhatriParmar
 

Recently uploaded (20)

LEAD5623 The Economics of Community Coll
LEAD5623 The Economics of Community CollLEAD5623 The Economics of Community Coll
LEAD5623 The Economics of Community Coll
 
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
 
t-test Parametric test Biostatics and Research Methodology
t-test Parametric test Biostatics and Research Methodologyt-test Parametric test Biostatics and Research Methodology
t-test Parametric test Biostatics and Research Methodology
 
AI Uses and Misuses: Academic and Workplace Applications
AI Uses and Misuses: Academic and Workplace ApplicationsAI Uses and Misuses: Academic and Workplace Applications
AI Uses and Misuses: Academic and Workplace Applications
 
Awards Presentation 2024 - March 12 2024
Awards Presentation 2024 - March 12 2024Awards Presentation 2024 - March 12 2024
Awards Presentation 2024 - March 12 2024
 
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdf
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdfPHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdf
PHARMACOGNOSY CHAPTER NO 5 CARMINATIVES AND G.pdf
 
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
 
EDD8524 The Future of Educational Leader
EDD8524 The Future of Educational LeaderEDD8524 The Future of Educational Leader
EDD8524 The Future of Educational Leader
 
The First National K12 TUG March 6 2024.pdf
The First National K12 TUG March 6 2024.pdfThe First National K12 TUG March 6 2024.pdf
The First National K12 TUG March 6 2024.pdf
 
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...
Certification Study Group - Professional ML Engineer Session 3 (Machine Learn...
 
Quantitative research methodology and survey design
Quantitative research methodology and survey designQuantitative research methodology and survey design
Quantitative research methodology and survey design
 
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in Pharmacy
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in PharmacyASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in Pharmacy
ASTRINGENTS.pdf Pharmacognosy chapter 5 diploma in Pharmacy
 
UNIT I Design Thinking and Explore.pptx
UNIT I  Design Thinking and Explore.pptxUNIT I  Design Thinking and Explore.pptx
UNIT I Design Thinking and Explore.pptx
 
LEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudLEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced Stud
 
Research Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchResearch Methodology and Tips on Better Research
Research Methodology and Tips on Better Research
 
Metabolism of lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptx
Metabolism of  lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptxMetabolism of  lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptx
Metabolism of lipoproteins & its disorders(Chylomicron & VLDL & LDL).pptx
 
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc
30-de-thi-vao-lop-10-mon-tieng-anh-co-dap-an.doc
 
POST ENCEPHALITIS case study Jitendra bhargav
POST ENCEPHALITIS case study  Jitendra bhargavPOST ENCEPHALITIS case study  Jitendra bhargav
POST ENCEPHALITIS case study Jitendra bhargav
 
Pharmacology chapter No 7 full notes.pdf
Pharmacology chapter No 7 full notes.pdfPharmacology chapter No 7 full notes.pdf
Pharmacology chapter No 7 full notes.pdf
 
Auchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsAuchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian Poetics
 

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