The need for multiple data representations is explained, together with generic operator which act on data objects that use multiple representations. Different types of data directed programming are discussed, and some examples are given.
MUST | |||
SICP 2.4 | Multiple Representations for Abstract Data | 5.1 | Multiple Data Representations and Generic Operators |
5.2 | Vertical and Horizontal Abstraction Barriers | ||
SICP 2.4.1 | Representation for Complex Numbers | 5.3 | Example of a data type (complex numbers) with two representations |
SICP 2.4.2 | Tagged Data | 5.4 | Principle of least commitment |
5.5 | Implementing multiple representations using manifest type | ||
SICP 2.4.3 | Data-Directed Programming | 5.6 | Limitations of manifest types |
5.7 | Data-directed programming | ||
5.8 | Dispatching | ||
5.9 | Message Passing | ||
SICP 2.5 | Systems with Generic Operators | 5.10 | Implementing Generic Operators using data-directed programming |
SICP 2.5.1 | Generic Arithmetic Operators | 5.11 | Example implementation of generic operators |
SHOULD | |||
SICP 2.3.2 | Example: Symbolic Differentiation | Instructive example on symbolic differentiation, demonstrating data abstraction, the use of lists, and the use of symbols as data | |
SICP 2.3.4 | Example: Huffman Encoding Trees | Encoding and Decoding Huffman trees | |
On the use of lists and data abstractions | |||
SICP 2.5.3 | Example: Symbolic Algebra | Extended example, including the use of data-directed programming | |
COULD | |||
SICP 2.3.3 | Representing Sets | Extensive example, introducing the data object class ``set'' | |
SICP 2.5.2 | Combining Operands of Different Types | data-directed programming with three dimensional tables, coersion, hierarchies of types |
6