Data Abstraction - PowerPoint PPT Presentation

About This Presentation
Title:

Data Abstraction

Description:

Good Design: Data definitions and contracts. Summary. Administrivia ... Establish agreement between programmers and users. Data Definition. What is it? ... – PowerPoint PPT presentation

Number of Views:124
Avg rating:3.0/5.0
Slides: 20
Provided by: ginal5
Category:

less

Transcript and Presenter's Notes

Title: Data Abstraction


1
Data Abstraction
  • CMSC 1150
  • Introduction to Computer Programming
  • October 2, 2002

2
Roadmap
  • Recap
  • Compound expressions Procedural Abstraction
  • Data Abstraction
  • Motivation Compound Data
  • Abstract Interface Constructors and Selectors
  • Concrete Implementation with define-struct
  • Abstraction Barriers
  • Good Design Data definitions and contracts
  • Summary

3
Administrivia
  • Add yourself to the course mailing list
  • http//mailman.cs.uchicago.edu 11500-1
  • TA office hours
  • Leandro Cortes Thurs 2-4, Ry178
  • Yu Tony Hu Fri 2-4, Ry 178
  • Dinoj Surendran Wed 3-4, Fri 10-11am, Eckhart
    006
  • First homework Due Monday
  • Dr Scheme note Language set to R5RS

4
Recap Expressions and Procedures
  • Primitives E.g. integers
  • Primitive operators ,-,,..
  • Primitive expressions ( 1 2), ( 3 4)
  • Compound expressions
  • ( ( 1 2) (5 6))
  • Procedural abstraction (define (square x) ( x
    x))
  • Conditionals if, cond
  • Issues Substitution model, Evaluation order

5
Compounding Abstraction
  • Procedures and Expressions
  • Combine primitives
  • Create more complex, powerful expressions
  • Abstractions
  • Procedures as black boxes, apply to different
    input
  • E.g. square procedure
  • (define (area r) ( pi (square r)))
  • Doesnt matter how implement square as long as it
    returns the square of the input.

6
Compound Data Abstraction
  • Similar issues arise for data
  • Represent things more complex than integers
  • Similar to building more complex functions
  • Objects have many facets
  • Abstract away from implementation
  • Any structure that behaves correctly

7
Compound Data Motivation
  • Real world objects often have many facets
  • Example Specifying a point in a plane
  • (x,y) coordinate pair
  • Create one data structure that holds BOTH
  • In use, often want x- or y- coordinate
  • E.g. to compute distance from origin, slope of
    line defined by two points, etc
  • Need accessors for each facet

8
Compound Data Structures
  • Example (x,y) coordinates
  • (make-posn x y)
  • Takes two numbers
  • Combines into a posn structure
  • posn can be input or output of procedure
  • E.g. (distance-to-0 (make-posn 5 0)) gt 5
  • (distance-to-0 (make-posn 3 4)) gt 5

9
Accessing Components
  • To compute distance-to-0
  • Need x and y coordinate values
  • Two procedures posn-x, posn-y
  • (posn-x (make-posn 1 3)) gt 1
  • (posn-y (make-posn 1 3)) gt 3
  • (define (distance-to-0 a-posn)
  • (sqrt ( (square (posn-x a-posn))
  • ( (square (posn-y a-posn))))

10
Abstraction
  • How do make-posn, posn-x, and posn-y work?
  • As users, we dont need to know
  • Key make-posn combines x and y
  • posn-x, posn-y return coordinates
  • Any implementation with this behavior is fine

11
Interface
  • Define an interface between abstract use and
    concrete implementation of structure
  • Two types of procedures
  • Constructors e.g. make-posn
  • Selectors e.g. posn-x, posn-y
  • Implement abstract data via concrete
    representation

12
A Concrete Implementation
  • (define-struct posn (x y))
  • Structure definition creates 3 procedures
  • Constructor make-posn
  • Selector posn-x
  • Selector posn-y
  • Discussion Other structures

13
Example Operations on Points
  • (distance-to-0 a-posn)
  • (line-length a-posn1 a-posn2)
  • (line-slope a-posn1 a-posn2)
  • etc.

14
Abstraction Barriers
  • Separate programs that use abstraction from those
    that implement abstraction

Points in problem domain
Distance-to-0 line-length line-slope
Points as x,y coordinates
make-posn posn-x posn-y
Points as structures
define-struct
However structures are implemented
15
Why Abstraction?
  • Can make programs much easier to maintain and
    modify
  • Consider alternate implementations
  • Limit changes to small of interface procedures
  • But only successful if maintain abstraction

16
Good Design Data Definition
  • Problem (make-posn dog cat)
  • Clearly wrong
  • Would blow up in distance-to-0, line-length, etc
  • Issue Guarantee that given correct types of
    input to constructor, processing output of
    selectors should yield intended result
  • Solution Data Definition
  • Establish agreement between programmers and users

17
Data Definition
  • What is it?
  • Combination of Scheme and English specifying
  • How to use a class of structures
  • How to construct elements of this class
  • Example posn
  • A posn is a structure (make-posn x y)
  • where x and y are numbers
  • Discussion Other definitions

18
Summary
  • Compound data abstraction
  • Parallel to use of compound expresssions
  • Capture multiple facets of objects
  • Interface Constructors and Selectors
  • Abstraction Allow users of data to ignore
    implementation
  • Abstraction barriers
  • Concrete Implementation with define-struct
  • Data definitions Establish covenant between
    users and programmers of data for behavior and
    input

19
Next Time
  • Today Finite compound data
  • Friday Infinite compound data
  • Lists constructors and selectors
  • Recursion
Write a Comment
User Comments (0)
About PowerShow.com