Results 1 - 1 of 1
- Coyne R D, Rosenman M A, Radford A D, Balachandran M and Gero J S Knowledge-based , 2001
"... Indexed data structures are prevalent in many programming applications. Collection-oriented languages provide means to operate directly on these structures, rather than having to loop or recurse through them. This style of programming will often yield clear and succinct programs. However, these prog ..."
Abstract - Cited by 2 (2 self) - Add to MetaCart
Indexed data structures are prevalent in many programming applications. Collection-oriented languages provide means to operate directly on these structures, rather than having to loop or recurse through them. This style of programming will often yield clear and succinct programs. However, these programming languages will often provide only a limited choice of indexed data types and primitives, and the exact semantics of these primitives will sometimes vary with the data type and language. In this paper we develop a unifying semantical model for indexed data structures. The purpose is to support the construction of abstract data types and language features for such structures from first principles, such that they are largely generic over many kinds of data structures. The use of these abstract data types can make programs and their semantics less dependent of the actual data structure. This makes programs more portable across different architectures and facilitates the early design phase. The model is a generalisation of arrays, which we call data fields: these are functions with explicit information about their domains. This information can be conventional array bounds but it could also define other shapes, for instance sparse. Data fields can be interpreted as partial functions, and we define a metalanguage for partial functions. In this language we define abstract versions of collection-oriented operations, and we show a number of identities for them. This theory is used to guide the design of data fields and their operations so they correspond closely to the more abstract notion of partial functions. We define phi-abstraction, a lambda-like syntax for defining data fields in a shape-independent manner, and prove a theorem which relates phi-abstraction and lambda-abstraction semantically. We also define a small data field language whose semantics is given by formal data fields, and give examples of data field programming for parallel algorithms with arrays and sparse structures, database quering and computing, and specification of symbolic drawings.