Skip to main content

Algebraic specification languages: An overview

  • Invited Papers
  • Conference paper
  • First Online:
Recent Trends in Data Type Specification (ADT 1994, COMPASS 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 906))

Abstract

Algebraic specification languages are characterised by their underlying logic, their constructs supporting a particular programming paradigm and their structuring mechanisms. In this paper a survey of algebraic specification languages is given together with hints to extensions towards imperative, object-oriented, concurrent, functional and logic programming. The main concepts for specification “in the small” and “in the large” are given and their representation in different specification languages is illustrated. A number of design decisions is listed which have to be considered for choosing a particular algebraic specification language. Finally, some trends and open questions concerning the development of algebraic specification languages are presented.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J.-R. Abrial, M.K. Lee, D.S. Neilson, P.N. Scharbach, I.H. Sørensen:The B-method In: S. Prehn, W.J. Toetenel (eds.): VDM '91 — Formal Software Development Methods, LNCS 552, 1991, 398–405.

    Google Scholar 

  2. E. Astesiano, M. Cerioli: Relationships between logical frameworks. In: [BC 93], 126–143.

    Google Scholar 

  3. E. Astesiano, A. Giovini, G. Reggio, E. Zucca: An integrated algebraic approach to the specification of data types, objects and processes. In [WB 89], 1989. 91–116.

    Google Scholar 

  4. E. Astesiano, G. Reggio: Algebraic specification of concurrency. In: [BC 93], 1–39.

    Google Scholar 

  5. F. L. Bauer, M. Broy, W. Dosen, R. Gnatz, B. Krieg-Brückner, A. Laut, M. Luckmann, T. Matzner, B. Möller, H. Partsch, P. Pepper, K. Samelson, R. Steinbrüggen, M. Wirsing, H. Wössner: Programming in a wide spectrum language: A collection of example. In: Sci. Comput. Programming 1, 1981, 73–144.

    Article  Google Scholar 

  6. K. J. Barwise: Handbook of Mathematical Logic. Studies in Logic and the Foundations of Mathematics, Vol. 90, North-Holland, Amsterdam, 1977.

    Google Scholar 

  7. M. Bidoit, C. Choppy (eds): Recent Trends in Data Type Specification, LNCS 655, 1993.

    Google Scholar 

  8. M. Broy, W. Dosch, H. Partsch, P. Pepper, M. Wirsing: Existential quantifiers in abstract data types. In: H. A. Maurer (ed.): 6th ICALP. LNCS 71, 1979, 73–87.

    Google Scholar 

  9. D. Bert, R. Echahed: Design and implementation of a generic, logic and functional programming language. In: Proc. European Symposium on Programming, LNCS 213, 1986.

    Google Scholar 

  10. R. M. Burstall, J. A. Goguen: Putting theories together to make specifications. Proc. 5th Internat Joint Conf. on Artificial Intelligence, Cambridge, MA, 1977, 1045–1058.

    Google Scholar 

  11. M. R. Burstall, J. A. Goguen: The semantics of CLEAR, a specification language. In: D. Björner (ed.): Proc. Advanced Course on Abstract Software Specifications. LNCS 86, 1980, 292–232.

    Google Scholar 

  12. J.A. Bergstra, J. Heering, P. Klint ASF — an algebraic specification formalism. CWI Amsterdam, Tech. Rep. CS-R8504, 1987.

    Google Scholar 

  13. J.A. Bergstra, J. Heering, P. Klint: Algebraic Specification. New York, ACM Press, 1989.

    Google Scholar 

  14. J.A. Bergstra, J. Heering, P. Klint: Module algebra. J. ACM 37, 1990, 335–372.

    Article  Google Scholar 

  15. M. Bidoit, R. Hennicker: Proving behavioural theorems with standard first-order logic. In: G. Levi, M. Rodriguez-Artalejo(eds.): Algebraic and Logic Programming 94, LNCS 850, 1994, 41–58.

    Google Scholar 

  16. M. Bidoit, R. Hennicker, M. Wirsing: Characterising behavioural semantics and abstractor semantics. In: ESOP 94, LNCS 788, 1994, 105–119.

    Google Scholar 

  17. M. Bidoit: Pluss, un langage pour le developpement de specifications algebriques modulaires. These d'Etat, University Paris-Sud, 1989.

    Google Scholar 

  18. M. Bidoit, D. Bert, C. Choppy, R. Echahed, J.-M. Hufflen, J.-P. Jacquot, M. Lemoine, N. Lévy, J.-C. Reynaud, C. Roques, F. Voisin: Opération SALSA: Structure d'accueil pour spécification algébriques. Rapport final. In: Greco de Programmation, December 1993.

    Google Scholar 

  19. D. Bjørner, C. B. Jones: The Vienna Development Method: the meta-language. LNCS 61, 1978.

    Google Scholar 

  20. J. Bergstra, J.W. Klop: ACPt: A univ. axiom System for process specification. In [WB89], 447–465.

    Google Scholar 

  21. G. Bernot, P. Le Gall: Label algebras: a systematic use of terms. In: [BC 93], 144–163.

    Google Scholar 

  22. D. Bjømer, H. Langmaack, C.A.R. Hoare: Provably Correct Systems. ProCoS I Final Delivery, 1992.

    Google Scholar 

  23. R. Breu: A normal form for structured algeb. specifications. Univ. Passau, Tech. Rep. MIP-8917, 1989.

    Google Scholar 

  24. R. Breu: Algebraic Specification Techniques in Object Oriented Programming Environments, LNCS 562, 1991.

    Google Scholar 

  25. M. Broy, C. Facchi, R. Grosu, R. Hettler, H. Hußmann, D. Nazareth, F. Regensburger, O. Slotosch, K. Stølen: The Requirement and Design Specification Language SPECTRUM: An Informal Introduction, Version 1.0, Part I, TU München, Tech. Rep. TUM-I9311, 1993.

    Google Scholar 

  26. M. Broy, M. Wirsing: Partial abstract data types. In: Acta Inform. 18, 1982, 47–64.

    Article  Google Scholar 

  27. M.V. Cengarle: Formal specifications with higher-order parameterization. LMU München, Doktorarbeit to appear.

    Google Scholar 

  28. I. Claßen, H. Ehrig, D. Wolz: Algebraic Specification Techniques and Tools for Software Development. AMAST Series in Computing 1, Singapore, World Scientific, 1993.

    Google Scholar 

  29. M. Cerioli, J. Meseguer. May I borrow your logic? In: Proc. of MFCS 93, 18th International Symposium on Mathematical Foundations of Computer Science, LNCS 711, 1993, 342–351.

    Google Scholar 

  30. S. Clerici, F. Orejas: GSBL: an algebraic specification language based on inheritance. In: Proc. European Conf. on Object Oriented Programming, Oslo 88, LNCS 1988, 78–92.

    Google Scholar 

  31. S. Clerici, F. Orejas: The specification language GSBL. In: Recent Trends in Data Type Specification, 7th Workshop on Specification of Abstract Data Types, Wusterhausen, LNCS 534, 1990.

    Google Scholar 

  32. E. Dubois, J-P. Finance, J. Souquières, A. van Lamsweerde: First description of the ICARUS language kernel for the product level. ICARUS Preliminary Deliverable. SpecFun-005-R-June 1989.

    Google Scholar 

  33. H. Ehrig, W. Fey, H. Hansen: ACT ONE: An algebraic specification language with two level of semantics. TU Berlin, FB 20, Tech. Rep. 80/03, 1983.

    Google Scholar 

  34. H. Ehrig, M. Gogolla, A. Sernadas: Objects and their specification. In: [BC 93], 40–65.

    Google Scholar 

  35. H. Ehrig, B. Mahr: Fundamentals of Algebraic Specifications I, Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science 6, Springer, Berlin, 1985.

    Google Scholar 

  36. H. Ehrig, B. Mahr: Fundamentals of algebraic specification 2. In: EATCS Monographs of Theoretical Computer Science, vol. 21, Springer, Berlin 1990.

    Google Scholar 

  37. H. Ehrig, J.W. Thatcher, P. Lucas, S.N. Zilles: Denotational and algebraic semantics of the algebraic specification language LOOK. TU Berlin, FB 20, Tech. Rep. 84/22, 1984.

    Google Scholar 

  38. H. Ehrig, E. G. Wagner, J. W. Thatcher: Algebraic specifications with generating constraints. In: J. Diaz (ed.): 10th Internat Coll. on Automata Languages and Programming. Lecture Notes in Computer Science 154, Springer, Berlin, 1983, 188–202.

    Google Scholar 

  39. J. Farres-Casals: Verification in ASL and related spec. languages. PhD thesis, Univ. of Edinburgh, 1992.

    Google Scholar 

  40. W. Fey: Pragmatics, concepts, syntax, semantics, and correctness notions of ACT TWO: An algebraic module specification and interconnection language. TO Berlin, FB 20, Tech. Rep. 88/26, 1988.

    Google Scholar 

  41. L. M. G. Feijs: The calculus μII. In [WB 89], 247–282.

    Google Scholar 

  42. L. Fribourg: SLog: a logic programming language interpreter based on clausal superposition and rewriting. In: Proc. IEEE Internat. Symposium on Logic Programming, Boston, 1985, 172–184.

    Google Scholar 

  43. K. Futatsugi, J. Goguen, J.-P. Jouannaud, J. Meseguer: Principles of OBJ2. In: B. Reid (ed.): 12th ACM Symposium on Principles of Programming Languages, ACM, 1985, 52–66.

    Google Scholar 

  44. M.-C. Gaudel: First introduction to Pluss, University of Paris Sud, Technical Report, L.R-I., 1984.

    Google Scholar 

  45. A. Geser, H. Hußmann: Experiences with the RAP-system — a specification interpreter combining term rewriting and resolution. In: B. Robinet, R. Wilhelm (eds.): ESOP 86. LNCS 213, 1986 339–350.

    Google Scholar 

  46. A. Geser, H. Hußmann, A. Mück: A compiler for a class of conditional term rewriting systems. In: Conditional Term Rewriting Systems, LNCS 308, 1988, 84–90.

    Google Scholar 

  47. J. A. Goguen, J. Meseguer Eqlog: equality, types, and generic modules for logic programming. In: D. Degroot, G. Lindstrom: Logic Programming, Functions, Relations, and Equations, Prentice Hall, N.J., 1986.

    Google Scholar 

  48. J. A. Goguen, J. Meseguer Unifying functional, object-oriented and relational programming with logical semantics. In: B. Shriver, P. Wegner: Res. Dir. in Object-Oriented Programming, MIT Press 1987, 417–477.

    Google Scholar 

  49. J. Goguen: Some design principles and theory for OBJ-0, a language for expressing and executing algebraic specifications of programs. In: E. Blum, M. Paul, S. Takasu (eds.): Conference on Mathematical Studies of Information Processing, LNCS 75, 1979, 425–473.

    Google Scholar 

  50. J. Guttag: The Specification and Application to Programming of Abstract Data Types. PhD Thesis, University of Toronto, Computer Science Dept Report CSRG-59, 1975.

    Google Scholar 

  51. J. Guttag, J. Horning: Report on the Larch shared language. Sci. Comp. Progr. 6,1986, 103–134.

    Article  Google Scholar 

  52. J. Guttag, J. Horning: Larch: Languages and Tools for Formal specification. Springer, 1993.

    Google Scholar 

  53. J. Goguen, J. Thatcher, E. Wagner, J. Wright: Abstract data types as initial algebras and the correctness of data representation. In A. Klinger (ed.): Computer Graphics, Pattern Recognition and Data Structures, IEEE, 1975, 89–93.

    Google Scholar 

  54. G. Guiho, F. Meija: Operational safety critical software methods in railways. In: K. Duncan, K. Krueger: Information Processing '94, Vol. 3, North-Holland, 1994, 262–269.

    Google Scholar 

  55. J. A. Goguen, T. Winkler: Introducing OBJ3. SRI International, Tech. Rep. SRI-CSL-88-9, 1988.

    Google Scholar 

  56. J. Goguen, T. Winkler, J. Meseguer, K. Futatsugi, J.-P. Jouannaud: Introducing OBJ3. SRI International, Tech. Rep. SRI-CSL-92-03, 1992.

    Google Scholar 

  57. M. Hanus: A functional and logic language with polymorphic types. In: Proc. Int. Symposium on Design and Implementation of Symbolic Computation Systems, LNCS 429, 1990, 215–224.

    Google Scholar 

  58. M. Hanus: The integration of function into logic programming: a survey. To appear in: Journal of Logic Programming 1994.

    Google Scholar 

  59. H. Hußmann, A. Geser: The RAP system as a tool for testing COLD specifications. In [WB 89], 1989, 331–346.

    Google Scholar 

  60. J.-M. Hufflen, N. Lévy: The algebraic specification language GLIDER: a two-level language. Presented at the 10th ADT Workshop and 6th COMPASS Meeting, Santa Margherita Ligure, Draft version, 1994.

    Google Scholar 

  61. A. Haxthausen, J. Pedersen, S. Prehn: RAISE: a product supporting industrial use of formal methods. TSI 12, 1993, 319–346.

    Google Scholar 

  62. R. Harper, D. Sannella, A. Tarlecki: Structure and representation in LF. In: Proc. 4th IEEE Symposium on Logics in Computer Science LICS 89, Asilomar, California, 1989, 226–237.

    Google Scholar 

  63. H. Hußmann: Formal foundations for SSADM. Habilitation thesis, TU München, 1994.

    Google Scholar 

  64. H. Hußmann: Formal foundations for pragmatic software engineering methods. In [Wo 94], 1994, 27–34.

    Google Scholar 

  65. G. Huet, D. C. Oppen: Equations and rewrite rules: A survey. In: R. V. Book (ed.): Formal Language Theory: Perspectives and Open Problems. Academic Press, 1980.

    Google Scholar 

  66. H.B.M. Jonkers: An introduction to COLD-K. In [WB 89], 139–206.

    Google Scholar 

  67. B. Krieg-Brückner, B. Hoffmann (eds.): PROgram development by SPECification and TRAnsformation, LNCS 680, 1993.

    Google Scholar 

  68. C.P.J. Koymans. G.R. Renardel de Lavalette: The logic MPLw. In [WB 89], 247–282.

    Google Scholar 

  69. B. Krieg-Brückner, D. Sannella: Structuring specifications in-the-large and in-the-small: Higherorder functions, dependent types and inheritance in SPECTRAL. Proc. TAPSOFT 91, LNCS 1991.

    Google Scholar 

  70. S. Kahrs, D. Sannella, A. Tarlecki: The semantics of Extended ML: a gentle introduction. In: Int. Workshop on Specification Languages, Utrecht 1993, to appear.

    Google Scholar 

  71. T. Lehmann, J. Loeckx: The specification language OBSCURE. Universität des Saarlandes, Fakultät f. Informatik, Tech. Report A 87/07, 1987.

    Google Scholar 

  72. Z. Luo: An extended calculus of constructions. PhD thesis, Univ. Edinburgh, 1990.

    Google Scholar 

  73. B. McConnell, J. V. Tucker: Infinite synchronous concurrent algorithms. In: E.L. Bauer, W. Brauer, H. Schwichtenberg (eds.): Logic and Algebra of Specification 1991, Springer, 1993, 321–376.

    Google Scholar 

  74. J. Meseguer: From abstract data types to logical frameworks. This volume.

    Google Scholar 

  75. C.A. Middelburg: Syntax and Semantics of VVSL: A Language for structured VDM specifications. Doctoral Thesis, University of Amsterdam, 1990.

    Google Scholar 

  76. P. D. Mosses: The use of sorts in algebraic specifications. In: [BC 93], 66–92.

    Google Scholar 

  77. T.S. Maibaum, P. Veloso, M. Sadler: A theory of abstract data types for program development: bridging the gap? In: H. Ehrig, C. Floyd, M. Nivat, J.Thatchen TAPSOFT '85, Vol.2. LNCS 186, 1985, 214–230.

    Google Scholar 

  78. J. J. Moreno-Navarro, M. Rodriguez-Artalejo: Logic programming with functions and predicates: the language BABEL. Journal of Logic Programming 12, 1992, 191–223.

    Article  Google Scholar 

  79. F. Orejas, M. Navarro, A. Sanchez: Implementation and beh. equivalence: a survey. In [BC93], 93–125

    Google Scholar 

  80. P. Padawitz, M. Wirsing: Completeness of many-sorted equational logic revisited. Bull. EATCS 24, 1984, 88–94.

    Google Scholar 

  81. P. Padawitz: Computing in Horn Clause Theories. EATCS Monographs 16, Springer, Berlin, 1988.

    Google Scholar 

  82. L. Paulson: ML for the working programmer. Cambridge Univ. Press, 1991.

    Google Scholar 

  83. H. Peterreins: A natural deduction calculus for structured specifications. Univ. München, Institut für Informatik, Tech. Report 9410, 1994.

    Google Scholar 

  84. P. Pepper, M. Wirsing et al.: KORSO: A methodology for the development of correct software. To appear in: M. Broy, S. Jähnichen(eds): KORSO: Correct Software by Formal Methods. 1995.

    Google Scholar 

  85. H. Reichel: Theorie der Aequoide. Dissertation B. Humboldt-Universität Berlin, 1979.

    Google Scholar 

  86. D. Sannella: Semantics, implementation and pragmatics of Clear, a program specification language. PhD. Thesis, Dept. of Computer Science, Univ. of Edinburgh, 1982.

    Google Scholar 

  87. D. Sannella, R. M. Burstall: Structured theories in LCF. In: G. Ausiello, M. Protasi (eds.): 8th CAAP, L'Aquila. LNCS 159, 1983, 377–391.

    Google Scholar 

  88. I. Sommerville: Software Engineering, 4th edition, Wokingham: Addison Wesley, 1992.

    Google Scholar 

  89. J. M. Spivey: The Z Notation — a reference manual. Prentice Hall 1989.

    Google Scholar 

  90. D. Sannella, S. Sokolowski, A. Tarlecki: Toward formal development of programs from algebraic specifications: parameterisation revisited. Acta Informatica 29, 1992, 689–736.

    Article  Google Scholar 

  91. D. Sannella, A. Tarlecki: Program specification and development in Standard ML. Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans, 1985, 67–77.

    Google Scholar 

  92. D. Sannella, A. Tarlecki: On observational equivalence and algebraic specification. Journal of Computer and System Sciences, 34, 1987, 150–178.

    Article  Google Scholar 

  93. D. Sannella, A. Tarlecki: Specifications in an arbitrary institution. Information and Computation 76, 1988, 165–210.

    Article  Google Scholar 

  94. D. Sannella, M. Wirsing: A kernel language for algebraic specification and implementation. In: M. Karpinski (ed.): 11th Coll. on Foundations of Computation Theory. LNCS 158, 1983, 413–427.

    Google Scholar 

  95. J. Tardo: The design, specification and implementation of OBJT: a language for writing and testing abstract algebraic program specifications. PhD Thesis, UCLA, Computer Science Department, 1981.

    Google Scholar 

  96. M. Wirsing: Structured algebraic specifications. In: B. Robinet (ed.): AFCET Symposium for Mathematics in Computer Science, 1982, 93–108.

    Google Scholar 

  97. M. Wirsing: Structured algebraic specifications: A kernel language. TCS 43, 1986, 123–250.

    Article  Google Scholar 

  98. M. Wirsing: Algebraic specification. In: J. van Leeuwen (ed.): Handbook of Theoretical Computer Science, Amsterdam, North-Holland, 1990, 675–788.

    Google Scholar 

  99. M. Wirsing: Structured specifications: syntax, semantics and proof calculus. In: F.L. Bauer, W. Brauer, H. Schwichtenberg (eds.): Logic and Algebra of Specification, Springer, 1993, 411–442.

    Google Scholar 

  100. M. Wirsing, J. Bergstra (eds.): Algebraic methods: theory, tools and applications. LNCS 394, 1989.

    Google Scholar 

  101. U. Wolter, K. Didrich, F. Cornelius, M. Klar, R. Wessäly, H. Ehrig: How to cope with the spectrum of SPECTRUM. TU Berlin, Tech. Rep. 94–22, 1994.

    Google Scholar 

  102. B. Wolfinger (ed.): Innovationen bei Rechnern u. Kommunikationssystemen. Springer, 1994, 1–50.

    Google Scholar 

  103. M. Weber, M. Simons, C. Lafontaine: The generic development language DEVA. LNCS 738, 1993.

    Google Scholar 

  104. S.N. Zilles, P. Lucas, J.W. Thatcher: A look at algebraic specifications. IBM Res. Rep. RJ 3568, 1982.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Egidio Astesiano Gianna Reggio Andrzej Tarlecki

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wirsing, M. (1995). Algebraic specification languages: An overview. In: Astesiano, E., Reggio, G., Tarlecki, A. (eds) Recent Trends in Data Type Specification. ADT COMPASS 1994 1994. Lecture Notes in Computer Science, vol 906. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014423

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-59132-0

  • Online ISBN: 978-3-540-49198-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics