Abstract
Parameterisation is an important mechanism for structuring programs and specifications into modular units. The interplay between parameterisation (of programs and of specifications) and specification (of parameterised and of non-parameterised programs) is analysed, exposing important semantic and methodological differences between specifications of parameterised programs and parameterised specifications. The extension of parameterisation mechanisms to the higher-order case is considered, both for parameterised programs and parameterised specifications, and the methodological consequences of such an extension are explored.
A specification formalism with parameterisation of an arbitrary order is presented. Its denotational-style semantics is accompanied by an inference system for proving that an object satisfies a specification. The formalism includes the basic specification-building operations of the ASL specification language and is institution independent.
Similar content being viewed by others
References
Bauer, F.L. et al. (the CIP language group): The wide spectrum language CIP-L. (Lect. Notes Comput. Sci., vol. 183) Berlin Heidelberg New York: Springer 1985
Bidoit, M.: The stratified loose approach: a generalization of initial and loose semantics. Recent Trends in Data Type Specification, Selected Papers from the 5th Workshop on Specification of Abstract Data Types, Gullane, Scotland. (Lect. Notes Comput. Sci., vol. 332, pp. 1–22) Berlin Heidelberg New York: Springer 1988
Borzyszkowski, A.M., Kubiak, R., Sokołowksi, S.: A set-theoretic model for a typed polymorphic λ-calculus. Proc. VDM-Europe Symp. VDM — The Way Ahead, Dublin. (Lect. Notes Comput. Sci., vol. 328, pp. 267–298) Berlin Heidelberg New York: Springer 1988
Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification language. Proc. of Advanced Course on Abstract Software Specification, Copenhagen. (Lect. Notes Comput. Sci., vol. 86, pp. 292–332) Berlin Heidelberg New York: Springer 1980
Birkhoff, G.: Lattice theory. Providence, RI: American Mathematical Society 1948
Blikle, A., Tarlecki, A.: Naive denotational semantics. Information Processing 83, Proc. IFIP Congress '83, Paris (ed. R. Mason) pp. 345–355. Amsterdam: North-Holland 1983
Cohn, P.M.: Universal algebra. Dordrecht: Reidel 1981
Constable, R.L. et al.: Implementing mathematics with the Nuprl proof development system. Englewood Cliffs, NJ: Prentice-Hall 1986
Coquand, T., Huet, G.: The calculus of constructions. Inf. Comput.76, 95–120 (1988)
Ehrich, H.-D.: On the theory of specification, implementation, and parametrization of abstract data types. J. ACM29, 206–227 (1982)
Ehrig, H., Mahr, B.: Fundamentals of algebraic specification I: Equations and initial semantics. Berlin Heidelberg New York: Springer 1985
Ehrig, H., Thatcher, J.W., Lucas, P., Zilles, S.N.: Denotational and initial algebra semantics of the algebraic specification language LOOK. Report 84-22, Technische Universität Berlin 1982
Farrés-Casals, J.: Verification in ASL and related specification languages. Ph.D. thesis, report CST-92-92, Dept. of Computer Science, University of Edinburgh 1992
Fitzgerald, J.S., Jones, C.B.: Modularizing the formal description of a database system. Proc. VDM '90 Conference, Kiel. (Lect. Notes Comput. Sci., Vol. 428, pp. 189–210) Berlin Heidelberg New York: Springer 1990
Ganzinger, H.: Parameterized specifications: parameter passing and implementation with respect to observability. Trans. Prog. Lang. Syst.5, 318–354 (1983)
Gaudel, M.-C., Moineau, T.: A theory of software reusability. Proc. 2nd European Symp. on Programming, Nancy. (Lect. Notes Comput. Sci., vol. 300, pp. 115–130) Berlin Heidelberg New York: Springer 1988
Goguen, J.A.: Parameterized programming. IEEE Trans. Software Eng.SE-10, 528–543 (1984)
Goguen, J.A., Burstall, R.M.: Introducing institutions. Proc. Logics of Programming Workshop, Carnegie-Mellon. (Lect. Notes Comput. Sci., vol. 164, pp. 221–256) Berlin Heidelberg New York: Springer 1984
Guttag, J.V., Horning, J.J., Wing, J.: Larch in five easy pieces. Report 5, DEC Systems Research Center, Palo Alto, CA, 1985
Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Proc. 2nd IEEE Symp. on Logic in Computer Science, Cornell, pp. 194–204 (1987)
Krieg-Brückner, B., Sannella, D.: Structuring specifications in-the-large and in-the-small: higher-order functions, dependent types and inheritance inSpectral. Proc. Colloq. on Combining Paradigms for Software Development, Joint Conf. on Theory and Practice of Software Development (TAPSOFT), Brighton. (Lect. Notes Comput. Sci., vol. 494, pp. 313–336) Berlin Heidelberg New York: Springer 1991
Lehmann, T., Loeckx, J.: 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. (Lect. Notes Comput. Sci., vol. 332, pp. 131–153) Berlin Heidelberg New York: Springer 1988
MacQueen, D.B.: Modules for Standard ML. In: Harper, R., MacQueen, D.B., Milner, R.: Standard ML. Report ECS-LFCS-86-2 University of Edinburgh 1986
Meyer, A.R., Mitchell, J.C., Moggi, E., Statman, R.: Empty types in polymorphic lambda calculus. Proc. 14th ACM Symp. on Principles of Programming Languages, pp. 253–262; revised version in Logical Foundations of Functional Programming (ed. G. Huet), pp. 273–284. Reading, MA: Addison-Wesley 1990
Mosses, P.: Unified algebras and modules. Proc. 16th ACM Symp. on Principles of Programming Languages, Austin, pp. 329–343 (1989)
Mosses, P.: Unified algebras and institutions. Proc. 4th IEEE Symp. on Logic in Computer Science, Asilomar, pp. 304–312 (1989)
Nordström, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf's type theory: an introduction. Oxford: Oxford University Press 1990
Sannella, D.: Formal program development in Extended ML for the working programmer. Proc. 3rd BCS/FACS Workshop on Refinement, Hursley Park. (Workshops in Computing) Berlin Heidelberg New York: Springer 1991
Sannella, D., Sokołowski, S., Tarlecki, A.: Toward formal development of programs from algebraic specifications: parameterisation revisited. Report 6/90, FB Informatik, Universität Bremen 1990
Sannella, D., Tarlecki, A.: Program specification and development in Standard ML. Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans, pp. 67–77 (1985)
Sannella, D., Tarlecki, A.: On observational equivalence and algebraic specification. J. Comput. Syst. Sci.34, 150–178 (1987)
Sannella, D., Tarlecki, A.: Specifications in an arbitrary institution. Inf. Comput.76, 165–210 (1988)
Sannella, D., Tarlecki, A.: Toward formal development of programs from algebraic specifications: implementations revisited. Acta Inf.25, 233–281 (1988)
Sannella, D., Tarlecki, A.: Toward formal development of ML programs: foundations and methodology. Report ECS-LFCS-89-71, Laboratory for Foundations of Computer Science, Dept. of Computer Science, University 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. (Lect. Notes Comput. Sci., vol. 352, pp. 375–389) Berlin Heidelberg New York: Springer 1989
Sannella, D., Tarlecki, A.: A kernel specification formalism with higher-order parameterisation. Proc. 7th Intl. Workshop on specification of Abstract Data Types, Wusterhausen. (Lect. Notes Comput. Sci., vol. 534, pp. 274–296) Berlin Heidelberg New York: Springer 1991
Sannella, D., Tarlecki, A.: Extended ML: past, present and future. Proc. 7th Intl. Workshop on Specification of Abstract Data Types, Wusterhausen. (Lect. Notes Comput. Sci., vol. 534, pp. 297–322) Berlin Heidelberg New York: Springer 1991
Sannella, D., Tarlecki, A.: Toward formal development of programs from algebraic specifications: model-theoretic foundations. Proc. Intl. Colloq. on Automata, Languages and Programming, Vienna. (Lect. Notes Comput. Sci., vol. 623, pp. 656–671) Berlin Heidelberg New York: Springer 1992
Sannella, D., Wirsing, M.: A kernel language for algebraic specification and implementation. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. (Lect. Notes Comput. Sci., vol. 158, pp. 413–427) Berlin Heidelberg New York Springer 1983
Schoett, O.: Data abstraction and the correctness of modular programming. Ph.D. thesis, report CST-42-87, Dept. of Computer Science, University of Edinburgh 1987
Sokołowski, S.: Parametricity in algebraic specifications: a case study. Draft report, Institute of Computer Science, Polish Academy of Sciences, Gdańsk 1990
Tarlecki, A.: Modules for a model-oriented specification language: a proposal for MetaSoft. Proc. 4th European Symp. on Programming, Rennes. (Lect. Notes Comput. Sci., vol. 582, pp. 451–472) Berlin Heidelberg New York: Springer 1992
Voß, A.: Algebraic specifications in an integrated software development and verification system. Ph.D. thesis, Universität Kaiserslautern 1985
Wirsing, M.: Structured algebraic specifications: a kernel language. Theor. Comp. Sci.42, 123–249 (1986)
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Sannella, D., Sokolowski, S. & Tarlecki, A. Toward formal development of programs from algebraic specifications: Parameterisation revisited. Acta Informatica 29, 689–736 (1992). https://doi.org/10.1007/BF01191893
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01191893