Abstract
A specification formalism with parameterisation of an arbitrary order is presented. It is given a denotational-style semantics, accompanied by an inference system for proving that an object satisfies a specification. The inference system incorporates, but is not limited to, a clearly identified type-checking component.
Special effort is made to carefully distinguish between parameterised specifications, which denote functions yielding classes of objects, and specifications of parameterised objects, which denote classes of functions yielding objects. To deal with both of these in a uniform framework, it was convenient to view specifications, which specify objects, as objects themselves, and to introduce a notion of a specification of specifications.
The formalism includes the basic specification-building operations of the ASL specification language. This choice, however, is orthogonal to the new ideas presented. The formalism is also institution-independent, although this issue is not explicitly discussed at any length here.
Much of the material presented here has been included in a very preliminary form in Section 6 of [SST 90].
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
8 References
The Programming Language Ada: Reference Manual. LNCS 106 Springer Lecture Notes in Computer Science, Volume 106 (1980).
H.P. Barendregt. The Lambda Calculus: Its Syntax and Semantics (second edition). North-Holland (1984).
F.L. Bauer et al (the CIP language group). The Wide Spectrum Language CIP-L. LNCS 183 Springer Lecture Notes in Computer Science, Volume 183 (1985).
M. Bidoit, M.-C. Gaudel and A. Mauboussin. How to make algebraic specifications more understandable? An experiment with the PLUSS specification language. Science of Computer Programming 12, 1–38 (1989).
A. Blikle and A. Tarlecki. Naive denotational semantics. Information Processing 83, Proc. IFIP Congress '83 (ed. R. Mason), Paris. North-Holland, 345–355 (1983).
A.M. Borzyszkowski, R. Kubiak and S. Sokołowski. A set-theoretic model for a typed polymorphic λ-calculus. Proc. VDM-Europe Symp. VDM — The Way Ahead, Dublin. LNCS 328, 267–298 (1988).
R.M. Burstall and J.A. Goguen. The semantics of CLEAR, a specification language. Proc. of Advanced Course on Abstract Software Specification, Copenhagen. LNCS 86, 292–332 (1980).
P.M. Cohn. Universal Algebra. Reidel (1981).
R.L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall (1986).
T. Coquand and G. Huet. The calculus of constructions. Information and Computation 76 (1988).
O.-J. Dahl, B. Myrhaug and K. Nygaard. Simula 67 common base language. Report S-22, Norwegian Computing Center, Oslo (1970).
H.-D. Ehrich. On the theory of specification, implementation, and parametrization of abstract data types. Journal of the Assoc. for Computing Machinery 29, 206–227 (1982).
H. Ehrig, H.-J. Kreowski, J. Thatcher, E. Wagner and J. Wright. Parameter passing in algebraic specification languages. Theoretical Computer Science 28, 45–81 (1984).
H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification I: Equations and Initial Semantics. Springer (1985).
H. Ehrig, J.W. Thatcher, P. Lucas and S.N. Zilles. Denotational and initial algebra semantics of the algebraic specification language LOOK. Report 84-22, Technische Universität Berlin (1982)
J. Farrés-Casals. Proving correctness of constructor implementations. Proc. 14th Symp. on Mathematical Foundations of Computer Science, Porabka-Kozubnik. LNCS 379, 225–235 (1989).
L.M.G. Feijs, H.B.M. Jonkers, C.P.J. Koymans and G.R. Renardel de Lavalette. Formal definition of the design language COLD-K. METEOR Report t7/PRLE/7, Philips Research Laboratories (1987).
J.S. Fitzgerald and C.B. Jones. Modularizing the formal description of a database system. Proc. VDM'90 Symp. VDM and Z — Formal Methods in Software Development, Kiel. LNCS 428, 189–210 (1990).
J.A. Goguen. Parameterized programming. IEEE Trans. Software Engineering SE-10, 528–543 (1984).
J.A. Goguen and R.M. Burstall. Introducing institutions. Proc. Logics of Programming Workshop, Carnegie-Mellon. LNCS 164, 221–256 (1984).
J.V. Guttag, J.J. Horning and J. Wing. Larch in five easy pieces. Report 5, DEC Systems Research Center, Palo Alto, CA (1985).
R. Harper, F. Honsell and G. Plotkin. A framework for defining logics. Proc. 2nd IEEE Symp. on Logic in Computer Science, Cornell, 194–204 (1987).
T. Lehmann and J. Loeckx. The specification language of OBSCURE. Recent Trends in Data Type Specification, Selected Papers from the 5th Workshop on Specification of Abstract Data Types, Gullane, Scotland. LNCS 332, 131–153 (1988).
B.H. Liskov et al. CLU Reference Manual. LNCS 114 (1981).
D.B. MacQueen. Modules for Standard ML. In: R. Harper, D.B. MacQueen and R. Milner. Standard ML. Report ECS-LFCS-86-2, Univ. of Edinburgh (1986).
A.R. Meyer, J.C. Mitchell, E. Moggi and R. Statman. Empty types in polymorphic lambda calculus. Proc. 14th ACM Symp. on Principles of Programming Languages, 253–262; revised version in Logical Foundations of Functional Programming (ed. G. Huet), Addison-Wesley, 273–284 (1990).
R. Milner, M. Tofte and R. Harper. The Definition of Standard ML. MIT Press (1990).
P. Mosses. Unified algebras and modules. Proc. 16th ACM Symp. on Principles of Programming Languages, Austin, 329–343 (1989).
P. Mosses. Unified algebras and institutions. Proc. 4th IEEE Symp. on Logic in Computer Science, Asilomar, 304–312 (1989).
B. Nordström, K. Petersson and J.M. Smith. Programming in Martin-Löf's Type Theory: An Introduction. Oxford Univ. Press (1990).
D. Sannella, F. da Silva and A. Tarlecki. Syntax, typechecking and dynamic semantics for Extended ML (version 2). Draft report, Univ. of Edinburgh (1990). Version 1 appeared as Report ECS-LFCS-89-101, Univ. of Edinburgh (1989).
D. Sannella, S. Sokołowski and A. Tarlecki. Toward formal development of programs from algebraic specifications: parameterisation revisited. Report 6/90, Informatik, Universität Bremen (1990).
D. Sannella and A. Tarlecki. Program specification and development in Standard ML. Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans, 67–77 (1985).
D. Sannella and A. Tarlecki. On observational equivalence and algebraic specification. J. Comp. and Sys. Sciences 34, 150–178 (1987).
D. Sannella and A. Tarlecki. Specifications in an arbitrary institution. Information and Computation 76, 165–210 (1988).
D. Sannella and A. Tarlecki. Toward formal development of ML programs: foundations and methodology. Report ECS-LFCS-89-71, Univ. of Edinburgh (1989); extended abstract in Proc. Colloq. on Current Issues in Programming Languages, Joint Conf. on Theory and Practice of Software Development (TAPSOFT), Barcelona. LNCS 352, 375–389 (1989).
D. Sannella and M. Wirsing. A kernel language for algebraic specification and implementation. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. LNCS 158, 413–427 (1983).
O. Schoett. Data abstraction and the correctness of modular programming. Ph.D. thesis, Univ. of Edinburgh (1986).
A. Voß. Algebraic specifications in an integrated software development and verification system. Ph.D. thesis, Universität Kaiserslautern (1985).
M. Wirsing. Structured algebraic specifications: a kernel language. Theoretical Computer Science 42, 123–249 (1986).
N. Wirth. Programming in Modula-2 (third edition). Springer (1988).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sannella, D., Tarlecki, A. (1991). A kernel specification formalism with higher-order parameterisation. In: Ehrig, H., Jantke, K.P., Orejas, F., Reichel, H. (eds) Recent Trends in Data Type Specification. ADT 1990. Lecture Notes in Computer Science, vol 534. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54496-8_15
Download citation
DOI: https://doi.org/10.1007/3-540-54496-8_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54496-8
Online ISBN: 978-3-540-38416-8
eBook Packages: Springer Book Archive