- Software described in a high-level description language.
- Transformations enhance efficiency and move toward executable
implementation, without changing semantics.
- Separation of ``what'' from ``how''.
- Abstraction: prototypes, development histories, transformations
- Selection: expert system rules may help selection.
- Specialization: done by transformation
- Integration: analogous to functional composition.