• Save
Keynote: The Power of Abstraction
Upcoming SlideShare
Loading in...5
×
 

Keynote: The Power of Abstraction

on

  • 236 views

Video and slides synchronized, mp3 and slide download available at http://bit.ly/13YbQvb. ...

Video and slides synchronized, mp3 and slide download available at http://bit.ly/13YbQvb.

Abstraction is at the center of much work in Computer Science. It encompasses finding the right interface for a system as well as finding an effective design for a system implementation. Filmed at qconlondon.com.

Barbara Liskov is an Institute Professor at MIT, a member of the National Academy of Engineering and the National Academy of Sciences, a fellow of the American Academy of Arts and Sciences, and a fellow of the ACM. Awards received: ACM Turing Award, the ACM SIGPLAN Programming Language Achievement Award, the IEEE Von Neumann medal, lifetime achievement award from the Society of Women Engineers.

Statistics

Views

Total Views
236
Views on SlideShare
236
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Keynote: The Power of Abstraction Keynote: The Power of Abstraction Presentation Transcript

  • The Power of AbstractionBarbara LiskovMarch 2013MIT CSAIL
  • InfoQ.com: News & Community Site• 750,000 unique visitors/month• Published in 4 languages (English, Chinese, Japanese and BrazilianPortuguese)• Post content from our QCon conferences• News 15-20 / week• Articles 3-4 / week• Presentations (videos) 12-15 / week• Interviews 2-3 / week• Books 1 / monthWatch the video with slidesynchronization on InfoQ.com!http://www.infoq.com/presentations/programming-abstraction-liskov
  • Presented at QCon Londonwww.qconlondon.comPurpose of QCon- to empower software development by facilitating the spread ofknowledge and innovationStrategy- practitioner-driven conference designed for YOU: influencers ofchange and innovation in your teams- speakers and topics driving the evolution and innovation- connecting and catalyzing the influencers and innovatorsHighlights- attended by more than 12,000 delegates since 2007- held in 9 cities worldwide View slide
  • Software is Complex Systems are big and they do complicated things and they may be distributed and/orconcurrent View slide
  • Addressing Complexity Algorithms, data structures, protocols
  • Addressing Complexity Algorithms, data structures, protocols Programming methodology Programming languages
  • This Talk Programming methodology as itdeveloped Programming languages Programming languages today
  • The Situation in 1970 The software crisis!
  • Programming Methodology How should programs be designed? How should programs be structured?
  • The Landscape E. W. Dijkstra. Go To StatementConsidered Harmful. Cacm, Mar. 1968
  • The Landscape N. Wirth. Program Development byStepwise Refinement. Cacm, April 1971
  • The Landscape D. L. Parnas. Information DistributionAspects of Design Methodology. IFIPCongress, 1971 “The connections between modules arethe assumptions which the modulesmake about each other.”
  • Modularity A program is a collection of modules
  • Modularity A program is a collection of modules Each module has an interface,described by a specification
  • Modularity A program is a collection of modules Each has an interface, described by aspecification A module’s implementation is correct if itmeets the specification A using module depends only on thespecification
  • Modularity A program is a collection of modules Each has an interface, described by aspecification A module’s implementation is correct if itmeets the specification A using module depends only on thespecification E.g. a sort routine sort(a)
  • Benefits of Modularity Local reasoning Modifiability Independent development
  • The Situation in 1970 Procedures were the only type ofmodule Not powerful enough, e.g., a file system Not used very much Complicated connections
  • Partitions B. Liskov. A Design Methodology forReliable Software Systems. FJCC, Dec.1972
  • PartitionsPartition stateop1 op2 op3
  • From Partitions to ADTs How can these ideas be applied tobuilding 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. DefinitionMechanisms in Extensible ProgrammingLanguages. AFIPS. 1970 R. Balzer. Dataless Programming. AFIPS.1967
  • The Landscape O-J. Dahl and C.A.R. Hoare. HierarchicalProgram Structures. StructuredProgramming, Academic Press, 1972
  • The Landscape J. H. Morris. Protection in ProgrammingLanguages. Cacm. Jan. 1973
  • Abstract Data Types B. Liskov and S. Zilles. Programmingwith Abstract Data Types. ACM SigplanConference on Very High LevelLanguages. 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 usethe objects A sketch of a programming language
  • From ADTs to CLU Participants Russ Atkinson Craig Schaffert Alan Snyder
  • Why a ProgrammingLanguage? Communicating to programmers Do ADTs work in practice? Getting a precise definition Achieving reasonable performance
  • Some Facts about CLU Static type checking Heap-based Separate compilation No concurrency, no gotos, noinheritance
  • CLU Mechanisms Clusters Polymorphism Iterators Exception handling
  • ClustersIntSet = cluster is create, insert, delete, …% representation for IntSet objects% implementation of the operationsend IntSet
  • ClustersIntSet = cluster is create, insert, delete, …% representation for IntSet objects% implementation of the operationsend IntSetIntSet s = IntSet$create( )IntSet$insert(s, 3)
  • PolymorphismSet = cluster[T: type] is create, insert, …% representation for Set object% implementation of Set operationsend SetSet[int] s := Set[int]$create( )Set[int]$insert(s, 3)
  • PolymorphismSet = cluster[T: type] is create, insert, …where T has equal: proctype(T, T)returns (bool)
  • 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
  • Iteratorssum: int := 0for e: int in Set[int]$members(s) dosum := sum + eend
  • Also Exception handling Strong specifications, e.g., IntSet$choose First class Procedures and Iterators
  • After CLU Argus and distributed computing Programming methodology Modular program design Reasoning about correctness Type hierarchy
  • From CLU to Object-OrientedProgramming SmallTalk provided inheritance
  • The Landscape Inheritance was used for: Implementation Type hierarchy
  • Type Hierarchy Wasn’t well understood E.g., stacks vs. queues
  • The Liskov SubstitutionPrinciple (LSP) Objects of subtypes should behave likethose of supertypes if used viasupertype methods B. Liskov. Data abstraction andhierarchy. Sigplan notices, May 1988
  • What Next? Modularity based on abstraction is theway things are done
  • Programming LanguagesToday Languages for experts, e.g., Java, C#
  • Programming 1A E.g., Python
  • Challenges A programming language for novicesand experts Ease of use vs. expressive power Readability vs. writeability Modularity and encapsulation Powerful abstraction mechanisms State matters
  • Challenges Massively-parallel computers Programming methodology Programming language support
  • The Power of AbstractionBarbara LiskovMarch 2013MIT CSAIL