Specifying Open GIS with Functional Languages

The concept of Open GIS depends on precise definitions of data, operations and interfaces. This paper argues for the use of functional programming languages as specification and prototyping tools for Open GIS components. It shows how functional programming languages fulfill the key requirements for formal specification languages and allow for rapid prototyping in addition. So far, it has never been possible to integrate specification and prototyping in a single, easy to use environment. Most existing specification methods lack appropriate tools for checking and prototyping, while existing tools lack either sound semantics or usability or both. The paper discusses the role of specifications in GIS, requirements for specification languages, and presents the basics of algebraic specifications as well as of functional languages. It then describes how functional languages can be used for writing and executing algebraic specifications. A brief example of a GIS data type specification in a functional language is presented, showing how specifications serve to describe differences in the semantics of GIS operations. We conclude that functional languages have the potential to achieve a breakthrough in the problem of specifying interfaces of interoperable components for Open GIS.

[1]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[2]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[3]  D. J. Allerton,et al.  Book Review: GPS theory and practice. Second Edition, HOFFMANNWELLENHOFF B., LICHTENEGGER H. and COLLINS J., 1993, 326 pp., Springer, £31.00 pb, ISBN 3-211-82477-4 , 1995 .

[4]  Andrew U. Frank,et al.  FORMALIZATION OF CONCEPTUAL MODELS FOR GIS USING GOFER , 1995 .

[5]  Paul Hudak,et al.  Monad transformers and modular interpreters , 1995, POPL '95.

[6]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[7]  Andrew U. Frank Surveying education for the future , 1995 .

[8]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[9]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[10]  Gruia-Catalin Roman,et al.  Formal Derivation of Rule-Based Programs , 1993, IEEE Trans. Software Eng..

[11]  Lu Hongjun,et al.  GIS : technology and applications : proceedings of the Far East Workshop on Geographic Information Systems, Singapore, 21-22 June, 1993 , 1993 .

[12]  李幼升,et al.  Ph , 1989 .

[13]  David W. Shipman,et al.  The functional data model and the data languages DAPLEX , 1981, TODS.

[14]  David W. Shipman The functional data model and the data language DAPLEX , 1979, SIGMOD '79.

[15]  Peter Thiemann Grundlagen der funktionalen Programmierung , 1994, Leitfäden der Informatik.

[16]  Terence R. Smith,et al.  Report on Workshop on Very Large Spatial Databases , 1990, J. Vis. Lang. Comput..

[17]  Ellis Horowitz,et al.  The design of data type specifications , 1976, ICSE '76.

[18]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[19]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[20]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[21]  Mark P. Jones Qualified Types: Theory and Practice , 1994 .