SlideShare a Scribd company logo
The Power of Abstraction

       Barbara Liskov
       November 2009
Outline
 Inventing abstract data types
 CLU
 Type hierarchy
 What next
Data Abstraction Prehistory
 The Venus machine
The Interdata 3
Data Abstraction Prehistory
 The Venus machine
 The Venus operating system
Data Abstraction Prehistory
 The Venus machine
 The Venus operating system
 Programming methodology
Programming Methodology
 How should programs be designed?
 How should programs be structured?
The Landscape
 E. W. Dijkstra. Go To Statement
 Considered Harmful. Cacm, Mar. 1968
The Landscape
 N. Wirth. Program Development by
 Stepwise Refinement. Cacm, April 1971
The Landscape
 D. L. Parnas. Information Distribution
 Aspects of Design Methodology. IFIP
 Congress, 1971

 “The connections between modules are
 the assumptions which the modules
 make about each other.”
Partitions
 B. Liskov. A Design Methodology for
 Reliable Software Systems. FJCC, Dec.
 1972
Partitions

             op1 op2 op3




             Partition state
From Partitions to ADTs
 How can these ideas be applied to
 building programs?
Idea
 Connect partitions to data types
Meeting in Savanah
 ACM Sigplan-Sigops interface meeting.
 April 1973. (Sigplan Notices, Sept.
 1973)
 Started to work with Steve Zilles
The Landscape
 Extensible Languages
   S. Schuman and P. Jourrand. Definition
   Mechanisms in Extensible Programming
   Languages. AFIPS. 1967
   R. Balzer. Dataless Programming. FJCC
   1967
The Landscape
 O-J. Dahl and C.A.R. Hoare. Hierarchical
 Program Structures. Structured
 Programming, Academic Press, 1972
The Landscape
 J. H. Morris. Protection in Programming
 Languages. Cacm. Jan. 1973
The Landscape
 W. Wulf and M. Shaw. Global Variable
 Considered Harmful. Sigplan Notices.
 Feb. 1973.
Abstract Data Types
 B. Liskov and S. Zilles. Programming
 with Abstract Data Types. ACM Sigplan
 Conference on Very High Level
 Languages. April 1974
What that paper proposed
 Abstract data types
   A set of operations
   And a set of objects
   The operations provide the only way to use
   the objects
What that paper proposed
 Abstract data types
   Clusters with encapsulation
 Polymorphism
 Static type checking (we hoped)
 Exception handling
From ADTs to CLU
 Participants
   Russ Atkinson
   Craig Schaffert
   Alan Snyder
The power of abstraction
Why a Programming
Language?
 Communicating to programmers
 Do ADTs work in practice?
 Getting a precise definition
 Achieving reasonable performance
Language Design
 Goals
   Expressive power, simplicity, performance,
   ease of use

   Minimality
   Uniformity
   Safety
Language Design
 Restrictions
   No concurrency
   No go tos
   No inheritance
Some Assumptions/Decisions
 Heap-based with garbage collection!
 No block structure!
 Separate compilation
 Static type checking
CLU Mechanisms
 Clusters
 Polymorphism
 Exception handling
 Iterators
Clusters
IntSet = cluster is create, insert, delete, isIn, …

end IntSet
Clusters
IntSet = cluster is create, insert, delete, …
end IntSet


IntSet s := IntSet$create( )
IntSet$insert(s, 3)
Clusters
  IntSet = cluster is create, insert, delete, …

     rep = array[int]
Clusters
  IntSet = cluster is create, insert, delete, …

     rep = array[int]

     create = proc ( ) returns (cvt)
        return (rep$create( ))
        end create
Polymorphism
 Set = cluster[T: type] is create, insert, …
 end Set



 Set[int] s := Set[int]$create( )
 Set[int]$insert(s, 3)
Polymorphism
Set = cluster[T: type] is create, insert, …
  where T has equal: proctype(T, T)
     returns (bool)
Polymorphism
Set = cluster[T: type] is create, insert, …
  where T has equal: proctype(T, T)
     returns (bool)

   rep = array[T]

   insert = proc (x: cvt, e: T)
      … if e = x[i] then …
Exception Handling
 J. Goodenough. Exception Handling:
 Issues and a Proposed Notation. Cacm,
 Dec. 1975
   Termination vs. resumption
   How to specify handlers
Exception Handling
choose = proc (x: cvt) returns (T)
  signals (empty)
    if rep$size() = 0 then signal empty
    …
Exception Handling
choose = proc (x: cvt) returns (T)
 signals (empty)
   if rep$size() = 0 then signal empty
   …

set[T]$ choose(s)
   except when empty: …
Exception Handling
 Handling
 Propagating
 Shouldn’t happen
   The failure exception
 Principles
   Accurate interfaces
   Avoid useless code
Iterators
 For all x in C do S
Iterators
 For all x in C do S
   Destroy the collection?
   Complicate the abstraction?
Visit to CMU
 Bill Wulf and Mary Shaw, Alphard
 Generators
Iterators
sum: int := 0
for e: int in Set[int]$members(s) do
  sum := sum + e
  end
Iterators
Set = cluster[T] is create, …, members, …

    rep = array[T]

    members = iter (x: cvt) yields (T)
     for z: T in rep$elements(x) do
       yield (z) end
After CLU
 Argus and distributed computing
 Type Hierarchy
The Landscape
 Inheritance was used for:
   Implementation
   Type hierarchy
Implementation Inheritance
 Violated encapsulation!
Type hierarchy
 Wasn’t well understood
 E.g., stacks vs. queues
The Liskov Substitution
Principle (LSP)
 Objects of subtypes should behave like
 those of supertypes if used via
 supertype methods

 B. Liskov. Data abstraction and
 hierarchy. Sigplan notices, May 1988
Polymorphism
 where T has …    vs.
 where T subtype of S

 Proofs happen at different times!
What Next?
 Modularity based on abstraction is the
 way things are done
Challenges
 New abstraction mechanisms?
 Massively Parallel Computers
 Internet Computer
   Storage and computation
   Semantics, reliability, availability, security
The Power of Abstraction

        Barbara Liskov
        October 2009

More Related Content

PPT
PPTX
Data visualization using R
PPTX
Vishal Verma: Rapidly Exploring Random Trees
PPTX
Data visualization with R
PPTX
Stack & Queue
PDF
Generative Models and Adversarial Training (D3L4 2017 UPC Deep Learning for ...
PDF
cvpr2009: class specific hough forest for object detection
PPTX
Innovative Uses of Technology in International Education
Data visualization using R
Vishal Verma: Rapidly Exploring Random Trees
Data visualization with R
Stack & Queue
Generative Models and Adversarial Training (D3L4 2017 UPC Deep Learning for ...
cvpr2009: class specific hough forest for object detection
Innovative Uses of Technology in International Education

Viewers also liked (20)

PPT
Facebook rinkodara Lietuvos elektroniniams verslams
PDF
Presentación de Servicios Prevengest
PDF
Shepherd Elementary School Community Meeting Flyer
PPT
Маркетинг 2015 - основни правила за малкия и среден бизнес
PPTX
Sul sentiero dell’emozioni lezioned el 4 aprile 2012
RTF
Kurani drejt shkences
PPTX
Suzuki adferdin god_uppskrift
PPTX
Group 2 - Pitch
PDF
Ta mnimeiaeinaigiromas167
PDF
The Monthly Lekhapara, July 2015
PPTX
SharePoint Fest Denver - Is Your SharePoint Really Healthy?
PDF
Privacy-Aware Data Management in Information Networks - SIGMOD 2011 Tutorial
PPT
Roma solo fotos
PDF
Open il vol4
PDF
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
PPTX
PDF
LR KONKURENCIJOS TARYBOS (KT) 2015 m. VEIKLOS ATASKAITA
PPTX
AOA - Annual OMEL Conference Encourages Osteopathic Discourse
PDF
Parenting education for better care of children (Pictorial Guidebook)
PDF
Boletín XVII abril 2016
Facebook rinkodara Lietuvos elektroniniams verslams
Presentación de Servicios Prevengest
Shepherd Elementary School Community Meeting Flyer
Маркетинг 2015 - основни правила за малкия и среден бизнес
Sul sentiero dell’emozioni lezioned el 4 aprile 2012
Kurani drejt shkences
Suzuki adferdin god_uppskrift
Group 2 - Pitch
Ta mnimeiaeinaigiromas167
The Monthly Lekhapara, July 2015
SharePoint Fest Denver - Is Your SharePoint Really Healthy?
Privacy-Aware Data Management in Information Networks - SIGMOD 2011 Tutorial
Roma solo fotos
Open il vol4
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
LR KONKURENCIJOS TARYBOS (KT) 2015 m. VEIKLOS ATASKAITA
AOA - Annual OMEL Conference Encourages Osteopathic Discourse
Parenting education for better care of children (Pictorial Guidebook)
Boletín XVII abril 2016
Ad

Similar to The power of abstraction (20)

PDF
MCA_Data Structure_Notes_of_UNIT_I & II.pdf
PDF
Coates p: the use of genetic programming for applications in the field of spa...
PDF
From Signal to Symbols
PPTX
A Simple Introduction to Neural Information Retrieval
PPT
Person re-identification, PhD Day 2011
PPT
K_MeansK_MeansK_MeansK_MeansK_MeansK_MeansK_Means.ppt
PPT
Machine Learning
PDF
Fusing Transformations of Strict Scala Collections with Views
PPT
Aggregation computation over distributed data streams(the final version)
PPTX
Scala and Deep Learning
PDF
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
PPTX
Deep Learning in your Browser: powered by WebGL
PPTX
Deep Learning, Keras, and TensorFlow
PPTX
Roberto Trasarti PhD Thesis
PDF
Deep image generating models
PPTX
Asymptotic Notation and Data Structures
PDF
Declarative Macro-Programming of Collective Systems with Aggregate Computing:...
PDF
Citython presentation
PDF
Multi-Armed Bandits:
 Intro, examples and tricks
PPT
R-programming-training-in-mumbai
MCA_Data Structure_Notes_of_UNIT_I & II.pdf
Coates p: the use of genetic programming for applications in the field of spa...
From Signal to Symbols
A Simple Introduction to Neural Information Retrieval
Person re-identification, PhD Day 2011
K_MeansK_MeansK_MeansK_MeansK_MeansK_MeansK_Means.ppt
Machine Learning
Fusing Transformations of Strict Scala Collections with Views
Aggregation computation over distributed data streams(the final version)
Scala and Deep Learning
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Deep Learning in your Browser: powered by WebGL
Deep Learning, Keras, and TensorFlow
Roberto Trasarti PhD Thesis
Deep image generating models
Asymptotic Notation and Data Structures
Declarative Macro-Programming of Collective Systems with Aggregate Computing:...
Citython presentation
Multi-Armed Bandits:
 Intro, examples and tricks
R-programming-training-in-mumbai
Ad

More from ACMBangalore (17)

PPT
Securing Wireless Cellular Systems
PDF
Overview of FreeBSD PMC Tools
PPTX
Lesson from Building a Search Engine using the cloud
PDF
Automated Design of Digital Microfluids Lab-on-Chip
PPT
Social Network Analysis (SNA) and its implications for knowledge discovery in...
PDF
Opening Remarks - Cloud Symposium
PDF
Clouds in emerging markets
PDF
Opportunites and Challenges in Cloud COmputing
PDF
Perspectives on Cloud COmputing - Google
PDF
Making of a Successful Cloud Business
PDF
Web Business Platforms on the Cloud
PDF
Badrinath Ramamurthy Cloud Infrastructure
PDF
market oriented cloud
PDF
Case study - SaaS Abs Experience Jan07 09
PDF
cloud - internet rengineering
PDF
virtualization tutorial at ACM bangalore Compute 2009
PDF
ACM Bangalore Distinguished Speaker Program
Securing Wireless Cellular Systems
Overview of FreeBSD PMC Tools
Lesson from Building a Search Engine using the cloud
Automated Design of Digital Microfluids Lab-on-Chip
Social Network Analysis (SNA) and its implications for knowledge discovery in...
Opening Remarks - Cloud Symposium
Clouds in emerging markets
Opportunites and Challenges in Cloud COmputing
Perspectives on Cloud COmputing - Google
Making of a Successful Cloud Business
Web Business Platforms on the Cloud
Badrinath Ramamurthy Cloud Infrastructure
market oriented cloud
Case study - SaaS Abs Experience Jan07 09
cloud - internet rengineering
virtualization tutorial at ACM bangalore Compute 2009
ACM Bangalore Distinguished Speaker Program

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
Teaching material agriculture food technology
PDF
KodekX | Application Modernization Development
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Modernizing your data center with Dell and AMD
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A Presentation on Artificial Intelligence
Network Security Unit 5.pdf for BCA BBA.
Teaching material agriculture food technology
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Modernizing your data center with Dell and AMD
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
NewMind AI Weekly Chronicles - August'25 Week I
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation

The power of abstraction