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.
Preview
Unable to display preview. Download preview PDF.
References
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.
E. Astesiano, M. Cerioli: Relationships between logical frameworks. In: [BC 93], 126–143.
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.
E. Astesiano, G. Reggio: Algebraic specification of concurrency. In: [BC 93], 1–39.
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.
K. J. Barwise: Handbook of Mathematical Logic. Studies in Logic and the Foundations of Mathematics, Vol. 90, North-Holland, Amsterdam, 1977.
M. Bidoit, C. Choppy (eds): Recent Trends in Data Type Specification, LNCS 655, 1993.
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.
D. Bert, R. Echahed: Design and implementation of a generic, logic and functional programming language. In: Proc. European Symposium on Programming, LNCS 213, 1986.
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.
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.
J.A. Bergstra, J. Heering, P. Klint ASF — an algebraic specification formalism. CWI Amsterdam, Tech. Rep. CS-R8504, 1987.
J.A. Bergstra, J. Heering, P. Klint: Algebraic Specification. New York, ACM Press, 1989.
J.A. Bergstra, J. Heering, P. Klint: Module algebra. J. ACM 37, 1990, 335–372.
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.
M. Bidoit, R. Hennicker, M. Wirsing: Characterising behavioural semantics and abstractor semantics. In: ESOP 94, LNCS 788, 1994, 105–119.
M. Bidoit: Pluss, un langage pour le developpement de specifications algebriques modulaires. These d'Etat, University Paris-Sud, 1989.
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.
D. Bjørner, C. B. Jones: The Vienna Development Method: the meta-language. LNCS 61, 1978.
J. Bergstra, J.W. Klop: ACPt: A univ. axiom System for process specification. In [WB89], 447–465.
G. Bernot, P. Le Gall: Label algebras: a systematic use of terms. In: [BC 93], 144–163.
D. Bjømer, H. Langmaack, C.A.R. Hoare: Provably Correct Systems. ProCoS I Final Delivery, 1992.
R. Breu: A normal form for structured algeb. specifications. Univ. Passau, Tech. Rep. MIP-8917, 1989.
R. Breu: Algebraic Specification Techniques in Object Oriented Programming Environments, LNCS 562, 1991.
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.
M. Broy, M. Wirsing: Partial abstract data types. In: Acta Inform. 18, 1982, 47–64.
M.V. Cengarle: Formal specifications with higher-order parameterization. LMU München, Doktorarbeit to appear.
I. Claßen, H. Ehrig, D. Wolz: Algebraic Specification Techniques and Tools for Software Development. AMAST Series in Computing 1, Singapore, World Scientific, 1993.
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.
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.
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.
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.
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.
H. Ehrig, M. Gogolla, A. Sernadas: Objects and their specification. In: [BC 93], 40–65.
H. Ehrig, B. Mahr: Fundamentals of Algebraic Specifications I, Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science 6, Springer, Berlin, 1985.
H. Ehrig, B. Mahr: Fundamentals of algebraic specification 2. In: EATCS Monographs of Theoretical Computer Science, vol. 21, Springer, Berlin 1990.
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.
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.
J. Farres-Casals: Verification in ASL and related spec. languages. PhD thesis, Univ. of Edinburgh, 1992.
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.
L. M. G. Feijs: The calculus μII. In [WB 89], 247–282.
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.
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.
M.-C. Gaudel: First introduction to Pluss, University of Paris Sud, Technical Report, L.R-I., 1984.
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.
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.
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.
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.
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.
J. Guttag: The Specification and Application to Programming of Abstract Data Types. PhD Thesis, University of Toronto, Computer Science Dept Report CSRG-59, 1975.
J. Guttag, J. Horning: Report on the Larch shared language. Sci. Comp. Progr. 6,1986, 103–134.
J. Guttag, J. Horning: Larch: Languages and Tools for Formal specification. Springer, 1993.
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.
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.
J. A. Goguen, T. Winkler: Introducing OBJ3. SRI International, Tech. Rep. SRI-CSL-88-9, 1988.
J. Goguen, T. Winkler, J. Meseguer, K. Futatsugi, J.-P. Jouannaud: Introducing OBJ3. SRI International, Tech. Rep. SRI-CSL-92-03, 1992.
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.
M. Hanus: The integration of function into logic programming: a survey. To appear in: Journal of Logic Programming 1994.
H. Hußmann, A. Geser: The RAP system as a tool for testing COLD specifications. In [WB 89], 1989, 331–346.
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.
A. Haxthausen, J. Pedersen, S. Prehn: RAISE: a product supporting industrial use of formal methods. TSI 12, 1993, 319–346.
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.
H. Hußmann: Formal foundations for SSADM. Habilitation thesis, TU München, 1994.
H. Hußmann: Formal foundations for pragmatic software engineering methods. In [Wo 94], 1994, 27–34.
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.
H.B.M. Jonkers: An introduction to COLD-K. In [WB 89], 139–206.
B. Krieg-Brückner, B. Hoffmann (eds.): PROgram development by SPECification and TRAnsformation, LNCS 680, 1993.
C.P.J. Koymans. G.R. Renardel de Lavalette: The logic MPLw. In [WB 89], 247–282.
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.
S. Kahrs, D. Sannella, A. Tarlecki: The semantics of Extended ML: a gentle introduction. In: Int. Workshop on Specification Languages, Utrecht 1993, to appear.
T. Lehmann, J. Loeckx: The specification language OBSCURE. Universität des Saarlandes, Fakultät f. Informatik, Tech. Report A 87/07, 1987.
Z. Luo: An extended calculus of constructions. PhD thesis, Univ. Edinburgh, 1990.
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.
J. Meseguer: From abstract data types to logical frameworks. This volume.
C.A. Middelburg: Syntax and Semantics of VVSL: A Language for structured VDM specifications. Doctoral Thesis, University of Amsterdam, 1990.
P. D. Mosses: The use of sorts in algebraic specifications. In: [BC 93], 66–92.
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.
J. J. Moreno-Navarro, M. Rodriguez-Artalejo: Logic programming with functions and predicates: the language BABEL. Journal of Logic Programming 12, 1992, 191–223.
F. Orejas, M. Navarro, A. Sanchez: Implementation and beh. equivalence: a survey. In [BC93], 93–125
P. Padawitz, M. Wirsing: Completeness of many-sorted equational logic revisited. Bull. EATCS 24, 1984, 88–94.
P. Padawitz: Computing in Horn Clause Theories. EATCS Monographs 16, Springer, Berlin, 1988.
L. Paulson: ML for the working programmer. Cambridge Univ. Press, 1991.
H. Peterreins: A natural deduction calculus for structured specifications. Univ. München, Institut für Informatik, Tech. Report 9410, 1994.
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.
H. Reichel: Theorie der Aequoide. Dissertation B. Humboldt-Universität Berlin, 1979.
D. Sannella: Semantics, implementation and pragmatics of Clear, a program specification language. PhD. Thesis, Dept. of Computer Science, Univ. of Edinburgh, 1982.
D. Sannella, R. M. Burstall: Structured theories in LCF. In: G. Ausiello, M. Protasi (eds.): 8th CAAP, L'Aquila. LNCS 159, 1983, 377–391.
I. Sommerville: Software Engineering, 4th edition, Wokingham: Addison Wesley, 1992.
J. M. Spivey: The Z Notation — a reference manual. Prentice Hall 1989.
D. Sannella, S. Sokolowski, A. Tarlecki: Toward formal development of programs from algebraic specifications: parameterisation revisited. Acta Informatica 29, 1992, 689–736.
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.
D. Sannella, A. Tarlecki: On observational equivalence and algebraic specification. Journal of Computer and System Sciences, 34, 1987, 150–178.
D. Sannella, A. Tarlecki: Specifications in an arbitrary institution. Information and Computation 76, 1988, 165–210.
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.
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.
M. Wirsing: Structured algebraic specifications. In: B. Robinet (ed.): AFCET Symposium for Mathematics in Computer Science, 1982, 93–108.
M. Wirsing: Structured algebraic specifications: A kernel language. TCS 43, 1986, 123–250.
M. Wirsing: Algebraic specification. In: J. van Leeuwen (ed.): Handbook of Theoretical Computer Science, Amsterdam, North-Holland, 1990, 675–788.
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.
M. Wirsing, J. Bergstra (eds.): Algebraic methods: theory, tools and applications. LNCS 394, 1989.
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.
B. Wolfinger (ed.): Innovationen bei Rechnern u. Kommunikationssystemen. Springer, 1994, 1–50.
M. Weber, M. Simons, C. Lafontaine: The generic development language DEVA. LNCS 738, 1993.
S.N. Zilles, P. Lucas, J.W. Thatcher: A look at algebraic specifications. IBM Res. Rep. RJ 3568, 1982.
Author information
Authors and Affiliations
Editor information
Rights 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