Computational Process
- Process manipulate Data
- Process is directed by a Program, a pattern of rules
Procedure - description of process
Declarative knowledge
"What is true"
sqrt(X) is the Y such that Y**2 == X and Y >= 0
Imperative knowledge
"How to"
To find an approximation to sqrt(x)
- make a guess G
- improve the guess by averaging G and X/G
- keep improving the guess until it is good enough
Techniques for controlling complexity
- Black box abstraction
- Coventional interfaces
- Metalinguistic abstraction
Method for finding a fixed point of a function F (that is, a value Y such that F(Y) == Y)
- start with a guess for Y
- keep applying F over and over until the result doesn't change very much
example: to compute sqrt(X), find a fixed point of the function Y --- average of Y and X/Y
Black box abstraction
- primitive objects
--- primitive procesures
--- primitive data
- means of combination
--- procesure composition
--- construction of compound data
- means of abstraction
--- procesure definition
--- simple data abstraction
- capturing common patterns
--- high-order procesures
--- data as procedures
Conventional interfaces
- generic operations
- large-scale structure and modularity
- object-oriented programming
- operations on aggregates (stream)