Skip to main content
Log in

Toward formal development of programs from algebraic specifications: Parameterisation revisited

  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Google Scholar 

  5. Birkhoff, G.: Lattice theory. Providence, RI: American Mathematical Society 1948

    Google Scholar 

  6. 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

    Google Scholar 

  7. Cohn, P.M.: Universal algebra. Dordrecht: Reidel 1981

    Google Scholar 

  8. Constable, R.L. et al.: Implementing mathematics with the Nuprl proof development system. Englewood Cliffs, NJ: Prentice-Hall 1986

    Google Scholar 

  9. Coquand, T., Huet, G.: The calculus of constructions. Inf. Comput.76, 95–120 (1988)

    Google Scholar 

  10. Ehrich, H.-D.: On the theory of specification, implementation, and parametrization of abstract data types. J. ACM29, 206–227 (1982)

    Google Scholar 

  11. Ehrig, H., Mahr, B.: Fundamentals of algebraic specification I: Equations and initial semantics. Berlin Heidelberg New York: Springer 1985

    Google Scholar 

  12. 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

  13. 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

  14. 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

    Google Scholar 

  15. Ganzinger, H.: Parameterized specifications: parameter passing and implementation with respect to observability. Trans. Prog. Lang. Syst.5, 318–354 (1983)

    Google Scholar 

  16. 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

    Google Scholar 

  17. Goguen, J.A.: Parameterized programming. IEEE Trans. Software Eng.SE-10, 528–543 (1984)

    Google Scholar 

  18. 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

    Google Scholar 

  19. Guttag, J.V., Horning, J.J., Wing, J.: Larch in five easy pieces. Report 5, DEC Systems Research Center, Palo Alto, CA, 1985

  20. 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)

  21. 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

    Google Scholar 

  22. 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

    Google Scholar 

  23. 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

  24. 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

    Google Scholar 

  25. Mosses, P.: Unified algebras and modules. Proc. 16th ACM Symp. on Principles of Programming Languages, Austin, pp. 329–343 (1989)

  26. Mosses, P.: Unified algebras and institutions. Proc. 4th IEEE Symp. on Logic in Computer Science, Asilomar, pp. 304–312 (1989)

  27. Nordström, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf's type theory: an introduction. Oxford: Oxford University Press 1990

    Google Scholar 

  28. 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

    Google Scholar 

  29. 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

  30. 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)

  31. Sannella, D., Tarlecki, A.: On observational equivalence and algebraic specification. J. Comput. Syst. Sci.34, 150–178 (1987)

    Google Scholar 

  32. Sannella, D., Tarlecki, A.: Specifications in an arbitrary institution. Inf. Comput.76, 165–210 (1988)

    Google Scholar 

  33. Sannella, D., Tarlecki, A.: Toward formal development of programs from algebraic specifications: implementations revisited. Acta Inf.25, 233–281 (1988)

    Google Scholar 

  34. 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

    Google Scholar 

  35. 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

    Google Scholar 

  36. 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

    Google Scholar 

  37. 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

    Google Scholar 

  38. 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

    Google Scholar 

  39. 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

  40. Sokołowski, S.: Parametricity in algebraic specifications: a case study. Draft report, Institute of Computer Science, Polish Academy of Sciences, Gdańsk 1990

    Google Scholar 

  41. 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

    Google Scholar 

  42. Voß, A.: Algebraic specifications in an integrated software development and verification system. Ph.D. thesis, Universität Kaiserslautern 1985

  43. Wirsing, M.: Structured algebraic specifications: a kernel language. Theor. Comp. Sci.42, 123–249 (1986)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01191893

Keywords

Navigation