Algebraic Specification

Part of the Texts in Computer Science book series (TCS)


Algebraic specification emerged in the 1970s as a formal specification technique for specifying data structures in an implementation-independent style. This approach has given rise to several specification methods providing techniques for data abstraction, theory formulation, analyzing specification properties, modular development, and hierarchical composition. Algebraic specification is founded on equational logic, and the underlying semantics is derived from algebra, where different mathematical structures such as groups, rings, and fields are studied. In this chapter we look at how to construct algebras for specifying various software artifacts.


Module Expression Ground Term Abstract Data Type Algebraic Specification Initial Algebra 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Bergstra JA, Heering J, Klint P (1989) Algebraic specification. ACM, New York MATHGoogle Scholar
  2. 2.
    Burstall R, Goguen J (1977) Putting theories to make specifications. In: Proceedings fifth international joint conference on artificial intelligence, pp 1045–1058 Google Scholar
  3. 3.
    Burstall R, Goguen J (1981) An informal introduction to specifications using CLEAR. In: Boyer R, Moore J (eds) The correctness problem in computer science. Academic Press, San Diego, pp 185–213 Google Scholar
  4. 4.
    Dhal OJ, Myhrhang B, Nygaard K (1970) Common base language. Norsk Reguesentral, Oslo Google Scholar
  5. 5.
    Goguen J, Thatcher J, Wagner E (1976) An initial algebra approach to the specification, correctness and implementation of abstract data types. In: Yeh R (ed) Current trends in programming methodology, vol IV. Prentice-Hall, New York, pp 80–149 Google Scholar
  6. 6.
    Goguen JA, Thatcher JW, Wagner EG, Wright JB (1977) Initial algebra semantics and continuous algebras. J ACM 24:68–95 MathSciNetMATHCrossRefGoogle Scholar
  7. 7.
    Goguen J, Winkler T (1988) Introducing OBJ3. Technical report SRI-CSL-88-9, SRI International, August 1988 Google Scholar
  8. 8.
    Guttag J (1975) The specification and application to programming of abstract data types. PhD thesis, Department of Computer Science, University of Toronto, Ontario, Canada Google Scholar
  9. 9.
    Guttag JV, Horning JJ (1978) The algebraic specification of abstract data types. Acta Inform 10:27–52 MathSciNetMATHCrossRefGoogle Scholar
  10. 10.
    Henderson P (1986) Functional programming, formal specification, and rapid prototyping. IEEE Trans Softw Eng SE-12(2):241–250 CrossRefGoogle Scholar
  11. 11.
    Liskov B, Guttag J (1989) Abstraction and specification in program development. MIT Press, Cambridge Google Scholar
  12. 12.
    Wirsing M (1990) Algebraic specification. In: van Leeuwen J (ed) Handbook of theoretical computer science. North-Holland, Amsterdam Google Scholar
  13. 13.
    Wirth N (1976) Algorithms + data structures = programs. Prentice-Hall, New York MATHGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  1. 1.Dept. Computer Science and Software Eng.Concordia UniversityMontrealCanada
  2. 2.Computer Science DepartmentUniversity of Wisconsin-La CrosseLa CrosseUSA

Personalised recommendations