Algebraic Specification

  • V. S. Alagar
  • K. Periyasamy
Part of the Graduate Texts in Computer Science book series (TCS)


Algebraic specification emerged in the 70s as a formal 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, specification property analysis, 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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    J.A. Bergstra, J. Heering, and P. Klint, Algebraic Specification, ACM Press, New York, NY, 1989.zbMATHGoogle Scholar
  2. [2]
    R. Burstall and J. Goguen, “Putting Theories to Make Specifications,” Proceedings Fifth International Joint Conference on Artificial Intelligence, 1977, pp. 1045–1058.Google Scholar
  3. [3]
    R. Burstall and J. Goguen, “An Informal Introduction to Specifications using CLEAR,” in R. Boyer and J. Moore (Eds.), The Correctness Problem in Computer Science, Academic Press, New York, NY, 1981, pp. 185–213.Google Scholar
  4. [4]
    O.J. Dhal, B. Myhrhang, and K. Nygaard, Common Base Language, Norsk Reguesentral, Oslo, 1970.Google Scholar
  5. [5]
    J. Goguen, J. Thatcher, and E. Wagner, “An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types,” in R.T. Yeh (Ed.), Current Trends in Programming Methodology, Vol. IV, Prentice-Hall, Englewood Cliffs, NJ, 1976, pp. 80–149.Google Scholar
  6. [6]
    J.A. Goguen, J.W. Thatcher, E.G. Wagner, andJ.B. Wright, “Initial Algebra Semantics and Continuous Algebras”, Journal of the ACM, Vol. 24, 1977, pp. 68–95.MathSciNetzbMATHCrossRefGoogle Scholar
  7. [7]
    J. Goguen and T. Winkler, Introducing OBJ3, Technical Report SRI-CSL-88–9, SRI International, Menlo Park, CA, August 1988.Google Scholar
  8. [8]
    J. Guttag, The Specification and Application to Programming of Abstract Data Types, Ph.D. Thesis, Department of Computer Science, University of Toronto, Toronto, Canada, 1975.Google Scholar
  9. [9]
    J.V. Guttag and J.J. Horning, “The Algebraic Specification of Abstract Data Types,” Acta Informatica, Vol. 10, 1978, pp. 27–52.MathSciNetzbMATHCrossRefGoogle Scholar
  10. [10]
    P. Henderson, “Functional Programming, Formal Specification, and Rapid Prototyping,” IEEE Transactions on Software Engineering, Vol. SE-12, No. 2, February 1986, pp. 241–250.CrossRefGoogle Scholar
  11. [11]
    B. Liskov and J. Guttag, Abstraction and Specification in Program Development, The MIT Press, Cambridge, MA, 1989.Google Scholar
  12. [12]
    M. Wirsing, “Algebraic Specification,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, North-Holland, Amsterdam, 1990.Google Scholar
  13. [13]
    N. Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, Englewood Cliffs, NJ, 1976.zbMATHGoogle Scholar

Copyright information

© Springer Science+Business Media New York 1998

Authors and Affiliations

  • V. S. Alagar
    • 1
  • K. Periyasamy
    • 2
  1. 1.Department of Computer ScienceConcordia UniversityMontrealCanada
  2. 2.Department of Computer ScienceUniversity of ManitobaWinnipegCanada

Personalised recommendations