## The Data Field Model (2001)

Venue: | Coyne R D, Rosenman M A, Radford A D, Balachandran M and Gero J S Knowledge-based |

Citations: | 3 - 2 self |

### BibTeX

@TECHREPORT{Lisper01thedata,

author = {Björn Lisper and Per Hammarlund},

title = {The Data Field Model},

institution = {Coyne R D, Rosenman M A, Radford A D, Balachandran M and Gero J S Knowledge-based},

year = {2001}

}

### OpenURL

### Abstract

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.

### Citations

1309 | Monads for Functional Programming
- Wadler
- 1995
(Show Context)
Citation Context ...tly) indexed data structures. Similar to FP in spirit is the Bird-Meertens formalism (BMF). Here an algebra with unary and binary functions forms a base for a set of theories for different data types =-=[4, 5]-=-. In particular, there is a theory for functions over lists. This formalism was originally developed to support the formal calculation of programs from specifications, but it can also serve as an abst... |

946 |
Performance FORTRAN Forum. High performance fortran language specification, version 2.0
- High
- 1997
(Show Context)
Citation Context ... made it easier to generate efficient code for a particular machine but was less flexible from a programming point of view. Modern array languages, like Fortran 90 [7], High Performance Fortran (HPF) =-=[24]-=- and Sisal [17, 59], provide a less machine-dependent programming model where array dimensions need not be related to machine size. This makes them more flexible with regard to programming, but it bec... |

440 |
Can programming be liberated from the von neumann style? A functional style and its algebra of programs
- Backus
- 1978
(Show Context)
Citation Context ...on, to specify computations with indexed data structures on a mathematical level, or to identify and prove algebraic laws which can be used for program transformations. An early example is Backus' FP =-=[2]-=-. FP is a formalism entirely based on functions and operations on functions, most prominently function composition. Values in FP are either atoms or tuples (sequences): the latter can be seen as (impl... |

415 |
Algorithmic Skeletons: Structured Management of Parallel Computation
- Cole
- 1989
(Show Context)
Citation Context ...he BSP model could be seen as a restricted instance of the data field model, and it could serve as a target format for transformations from less restricted data field instances. Algorithmic skeletons =-=[11]-=- are higher order patterns which can be used to implement collection-oriented operations in a way tailored to suit given parallel architectures. They thus fit very well in a functional context and it ... |

232 |
Data parallel algorithms
- Hillis, Steele
- 1986
(Show Context)
Citation Context ...lassical example is APL [16], which provides arrays and a rich set of operations on them. Indexed data structures are very important in high performance computing. The data parallel programming model =-=[25]-=- is a collection-oriented paradigm for explicit parallelism, originally for SIMD architectures where distributed entities, like arrays indexed by processor coordinates, are manipulated in parallel. Ma... |

225 | Report on programming language Haskel a non-strict, purely functional language version 1.2
- Hudak, Jones, et al.
- 1992
(Show Context)
Citation Context ...pler. The out-of-bounds error value, which we denote by "", has algebraic properties similar to the divergent element ? (see [46] for details), and sometimes we will even identify them (as i=-=n Haskell [31]) although-=- they represent quite different behaviours. When they are not identified we will sometimes consider a test "iss" which returns true for . Clearly, the bounds are central to the data field co... |

185 |
Initial Algebra Semantics and Continuous Algebras
- Goguen, Thatcher, et al.
- 1977
(Show Context)
Citation Context ...inite if finite(b) = true, otherwise infinite. If size(b) = 0 then b is empty. Thus, nothing is empty, but other bounds may also be empty. Definition 4 actually defines a class of continuous algebras =-=[12, 20]-=- but we will not use this fact here. Definition 5 If [ff ! fi] is a cpo of continuous functions, and if B(ff) is a cpo of bounds for ff, then D(ff; fi) = [ff ! fi] \Theta B(ff) is a cpo of data fields... |

179 |
Numerical methods
- Björck, Dahlquist
- 1974
(Show Context)
Citation Context ...- m7 in (c11 `++1` c21) `++2` (c12 `++1` c22) Note that the resulting code is void of any explicit bounds. 8.3 Data parallel LU factorisation LU factorisation is a classical problem in linear algebra =-=[13]-=-. The task is to factorise an n \Theta n-matrix A = LU where L is a lower-triangular matrix and U is uppertriangular. The standard algorithm computes L and U in such a way that the diagonal elements o... |

174 | PolyP – a polytypic programming language extension
- Jansson, Jeuring
- 1997
(Show Context)
Citation Context ...shape can be inferred at compile time. FiSh functions can be shape-polymorphic. A somewhat similar approach is the polytypic model, where functions like map are defined for classes of recursive types =-=[33]-=-. Another approach is to use systematic overloading to obtain a generic collectionoriented programming model. Peyton Jones [36] uses the class system of Haskell to define a class of bulk types with as... |

97 |
4 report on the Sisal language project
- Feo, Cann, et al.
- 1990
(Show Context)
Citation Context ... to generate efficient code for a particular machine but was less flexible from a programming point of view. Modern array languages, like Fortran 90 [7], High Performance Fortran (HPF) [24] and Sisal =-=[17, 59]-=-, provide a less machine-dependent programming model where array dimensions need not be related to machine size. This makes them more flexible with regard to programming, but it becomes harder to comp... |

53 |
Full Abstraction for sequential languages: the state of the art
- Berry, Curien, et al.
- 1985
(Show Context)
Citation Context ...s in the metalanguage as terms rather than elements of cpo's, and consider rewrite semantics rather than denotational semantics. The connection between rewite and denotational semantics is well known =-=[3, 12]-=-. Higher order languages can be given rewrite semantics based on Klop's Combinatory Reduction Systems (CRS), see Appendix B, and in Appendix A we define a CRS M which gives an alternative rewrite sema... |

52 |
Lazy Memo-functions
- Hughes
- 1985
(Show Context)
Citation Context ...seen as functions since memoised data fields seem important (in conventional models for high performance computing memoised structures are the norm). Although nonstrict lookup procedures are possible =-=[32], hyperstr-=-ict lookup is easier to implement and seems conceptually simpler. The out-of-bounds error value, which we denote by "", has algebraic properties similar to the divergent element ? (see [46] ... |

43 |
The case for high-level parallel programming in ZPL
- Chamberlain, Choi, et al.
- 1998
(Show Context)
Citation Context ...d therefore this section focusses on formalisms rather than languages. An excellent survey of collection-oriented languages and features up to around 1990 is found in [58]. However, the languages ZPL =-=[8]-=- and FIDIL [57] deserve special mentioning since they consider bounds (called regions in ZPL and domains in FIDIL) to be more or less first-class data. In particular, the domains of FIDIL are much ric... |

42 |
A calculus of functions for program derivation
- Bird
- 1990
(Show Context)
Citation Context ...tly) indexed data structures. Similar to FP in spirit is the Bird-Meertens formalism (BMF). Here an algebra with unary and binary functions forms a base for a set of theories for different data types =-=[4, 5]-=-. In particular, there is a theory for functions over lists. This formalism was originally developed to support the formal calculation of programs from specifications, but it can also serve as an abst... |

41 |
Recursive applicative program schemes, in
- Courcelle
- 1990
(Show Context)
Citation Context ...s in the metalanguage as terms rather than elements of cpo's, and consider rewrite semantics rather than denotational semantics. The connection between rewite and denotational semantics is well known =-=[3, 12]-=-. Higher order languages can be given rewrite semantics based on Klop's Combinatory Reduction Systems (CRS), see Appendix B, and in Appendix A we define a CRS M which gives an alternative rewrite sema... |

40 |
Crystal: Theory and Pragmatics of Generating Efficient Parallel Code
- Chen, Choo, et al.
- 1991
(Show Context)
Citation Context ...mensional arrays, there are natural orderings. The situation is less clear for multidimensional arrays and sparse structures. 3 Data Fields, Informally The term "data fields" is borrowed fro=-=m Crystal [10]. Our data-=- fields are pairs (f; b), where f is a function and the "bound" b is a set representation. We denote the set defined by b by ffbgg, and the corresponding predicate by [[b]] bool . ffbgg cont... |

34 | Shapely types and shape polymorphism
- Jay, Cockett
- 1994
(Show Context)
Citation Context ...e all based on a single type of indexed data structure, and a purpose of our work is to develop a more generic model which is less dependent on the choice of structure. The work on Shape Polymorphism =-=[34] is a step-=- in that direction, where a category-theoretical model is used to specify shapely types and identify operations which are polymorphic over these types. The "usual" algebraic types of lists, ... |

30 |
On the relation between functional and data-parallel programming languages, in
- Lisper, Hammarlund
- 1993
(Show Context)
Citation Context ...t. 10, finally, we wrap up and give some directions for future research. An early presentation of the more abstract data-structures-as-partial-functions model, given here in Sections 5-6, is found in =-=[23]-=-. In [43], a tutorial over this model is given. A short, preliminary account for the data field model as presented here is given in [44]. 2 Operations on indexed data structures Which operations on in... |

24 | The Church-Rosser property and a result of combinatory logic. Dissertation - Hindley - 1964 |

20 | The functional imperative: shape
- Jay, Steckler
- 1998
(Show Context)
Citation Context ...ich are polymorphic over these types. The "usual" algebraic types of lists, trees, graphs etc. are shapely types. The canonical example of a shape-polymorphic function is map. The array lang=-=uage FiSh [35]-=- is based on this theory. FiSh only supports regular arrays. Each array has a shape (similar to 41 bounds for data fields), and FiSh has fairly strong restrictions which ensure that the shape can be i... |

15 | The design of sparse direct solvers using objectoriented techniques
- Dobrian, Kumfert, et al.
- 2000
(Show Context)
Citation Context ... been done in the object-oriented community, like the STL C++ library [52]. Object-oriented approaches to generic program development for high-performance parallel computing have also been considered =-=[14]. The enum-=- function for data fields corresponds to the "iterator" design pattern in object-oriented design [19]. Common for these overloading-based efforts is that they do not pay much attention to mu... |

12 |
The design of apl
- Falkoff, Iverson
- 1975
(Show Context)
Citation Context ...t a programming model which provides operations directly on the data structures can be very convenient. This model is an instance of collection-oriented programmings[58]. The classical example is APL =-=[16]-=-, which provides arrays and a rich set of operations on them. Indexed data structures are very important in high performance computing. The data parallel programming model [25] is a collection-oriente... |

12 | The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient
- Fitzpatrick, Harmer, et al.
- 1997
(Show Context)
Citation Context ...andling of singularities, like empty arrays. This model is highly APL-specific and it is not easily generalized to other indexed structures. Another approach to arrays is taken by Fitzpatrick et. al. =-=[18]: they def-=-ine arrays as pairs of "shapes" and functions (essentially a simple instance of data fields) and consider algebraic transformations of high-level functional array algorithm specifications in... |

12 | Extracting and implementing list homomorphisms in parallel program development
- Gorlatch
(Show Context)
Citation Context ...serve as an abstract model for explicit data parallel programming, with a cost model [60]. The systematic transformation in BMF of specifications into parallel algorithms has been studied by Gorlatch =-=[21]-=-. Formal parallelisation in BMF is achieved by transforming functions into list homomorphisms: such functions can be computed in parallel in logarithmic time. A potential weakness of BMF in this conte... |

10 |
A perspective on Id
- EKANADHAM
- 1991
(Show Context)
Citation Context ...of the equality possibly may have different termination properties. Thus, the results can be used if we don't care about the distinction between error and nontermination (similar to lenient semantics =-=[15]-=-), or in a situation where we know that the functions involved will always terminate, (like, say, if they are memoised data structures). In [46] the situation whensand ? are kept distinct is investiga... |

6 |
Programmer's Guide to FORTRAN 90. Programming Languages
- Brainerd, Goldberg, et al.
- 1990
(Show Context)
Citation Context ...ensions as the processor array. This made it easier to generate efficient code for a particular machine but was less flexible from a programming point of view. Modern array languages, like Fortran 90 =-=[7]-=-, High Performance Fortran (HPF) [24] and Sisal [17, 59], provide a less machine-dependent programming model where array dimensions need not be related to machine size. This makes them more flexible w... |

4 |
Space-Time Algorithms: Semantics and Methodology
- Chen
- 1983
(Show Context)
Citation Context ... related to the partial function view of data fields. A Mathematics of Arrays (MOA) [51] is a model where APL-like arrays are defined in this manner, and operations on arrays are formally defined. In =-=[9]-=- space-time recursion equations are studied, a kind of recursively defined partial functions which give semantics to systolic arrays. This work later developed into the language Crystal [10, 71], wher... |

2 |
Steele Jr. Data parallel computers and the forall statement
- Albert, Lukas, et al.
- 1991
(Show Context)
Citation Context ... resulting structure. The parallel for construct in Sisal is an example: adding X and Y elementwise for indices 1 to n can be expressed as for i in 1,n returns array of X[i]+Y[i] The FORALL statement =-=[1]-=- in HPF is very related. The exact semantics of elementwise applied operations varies, in particular when they take several arguments with different extents. For operations on lists as above, the sema... |

2 | Implementing data fields in Haskell
- Holmerin
- 1999
(Show Context)
Citation Context ...ed "Data Field Haskell", a dialect of Haskell where the arrays are replaced with an instance of data fields (essentially the sparse/dense arrays of Sect. 7.5), according to the framework def=-=ined here [27, 30, 29, 47]-=-. The rest of this paper is organized as follows. In Sect. 2 we give a taxonomy of collection-oriented operations and identify the major syntactical styles for these. Sect. 3 provides a first, informa... |

1 |
Towards a theory of data-parallel computation: from Connection
- Boug'e, Paulin-Mohring
- 1991
(Show Context)
Citation Context ...appings are really set-theoretical functions over a finite domain and they correspond to sparse data fields. A formalization of the Connection Machine Lisp model was done by Boug'e and Paulin-Mohring =-=[6]-=-. These formalisms are all based on a single type of indexed data structure, and a purpose of our work is to develop a more generic model which is less dependent on the choice of structure. The work o... |

1 |
Implementations of very large recurrent ANNs on massively parallel SIMD computers
- Hammarlund, Lansner
- 1992
(Show Context)
Citation Context ...han the absolute output levels: most differences will be zero and need therefore not be sent, which greatly reduces the communication and also the arithmetics needed when updating the activities. See =-=[22]-=-. The following is an iterative data field algorithm: recall beta w taue piin einit deltat f == 39 let relax pi e s = let pinew = f e beta deltapi = sparse (pinew-pi) deltab = forall(i,j)-?deltapi!j d... |

1 | Development of parallel algorithms in Data Field Haskell
- Holmerin, Lisper
- 2000
(Show Context)
Citation Context ...ed "Data Field Haskell", a dialect of Haskell where the arrays are replaced with an instance of data fields (essentially the sparse/dense arrays of Sect. 7.5), according to the framework def=-=ined here [27, 30, 29, 47]-=-. The rest of this paper is organized as follows. In Sect. 2 we give a taxonomy of collection-oriented operations and identify the major syntactical styles for these. Sect. 3 provides a first, informa... |