A Specification Language for Interoperable GIS

Specifications of software interfaces are essential for interoperability. If an interface is not clearly specified, software that exposes or uses the interface necessarily contains assumptions that can make it non-interoperable with other software based on different assumptions. Eliminating, or at least coordinating such assumptions requires a precise and complete specification language. If such a language also allows for prototyping of the specified components, it is a much more powerful tool in the specification process and can even support conformance testing. This chapter describes why and how functional languages serve all these purposes.

[1]  Niklaus Wirth,et al.  Algorithms & data structures , 1985 .

[2]  Peter D. Mosses,et al.  Denotational semantics , 1995, LICS 1995.

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

[4]  Andrew U. Frank The Prevalence of Objects with Sharp Boundaries in GIS , 1995 .

[5]  George Gratzer,et al.  Universal Algebra , 1979 .

[6]  P. Burrough,et al.  Geographic Objects with Indeterminate Boundaries , 1996 .

[7]  Andrew U. Frank,et al.  Specifying Open GIS with Functional Languages , 1995, SSD.

[8]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[9]  Dana S. Scott,et al.  Logic and programming languages , 1977, CACM.

[10]  Philip Wadler,et al.  Combining Monads , 1992, Functional Programming.

[11]  Mark P. Jones,et al.  The implementation of the Gofer functional programming system , 1994 .

[12]  Christiane Floyd On the Relevance of Formal Methods to Software Development , 1985, TAPSOFT, Vol.2.

[13]  D. Andrews Formal methods and software development , 1996, Proceedings 1996 International Conference Software Engineering: Education and Practice.

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

[15]  R. Tennant Algebra , 1941, Nature.

[16]  Niklaus Wirth,et al.  Algorithms + Data Structures = Programs , 1976 .

[17]  Desmond Fearnley-Sander,et al.  Universal Algebra , 1982 .

[18]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[19]  Mark P. Jones,et al.  Functional Programming with Overloading and Higher-Order Polymorphism , 1995, Advanced Functional Programming.

[20]  Hans-Erik Eriksson,et al.  UML toolkit , 1997 .

[21]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.

[22]  Magnus Carlsson,et al.  Programming with Fudgets , 1995, Advanced Functional Programming.