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.
KeywordsSorting Prefix Editing Vanilla Baca
Unable to display preview. Download preview PDF.
- R. Burstall and J. Goguen, “Putting Theories to Make Specifications,” Proceedings Fifth International Joint Conference on Artificial Intelligence, 1977, pp. 1045–1058.Google Scholar
- 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
- O.J. Dhal, B. Myhrhang, and K. Nygaard, Common Base Language, Norsk Reguesentral, Oslo, 1970.Google Scholar
- 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
- J. Goguen and T. Winkler, Introducing OBJ3, Technical Report SRI-CSL-88–9, SRI International, Menlo Park, CA, August 1988.Google Scholar
- 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
- B. Liskov and J. Guttag, Abstraction and Specification in Program Development, The MIT Press, Cambridge, MA, 1989.Google Scholar
- M. Wirsing, “Algebraic Specification,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, North-Holland, Amsterdam, 1990.Google Scholar