GSBL: An Algebraic Specification Language Based on Inheritance
At the specification level, inheritance can be defined as subtyping by means of order sorted specifications [GM85]. Subtyping is, obviously, a very important notion, allowing not only to work with a non rigid type structure, but also providing an adequate basis for error handling in algebraic specifications. However, in our opinion, subtyping and order sorted specifications do not play the same rûle as inheritance in program design. In this paper, we will present a hierarchical organization for specifications, based on a different concept of inheritance which, we think, corresponds, methodologically, to the usual inheritance relation defined at the programming level. This new relation allows to work with incomplete specifications with several levels of detail and, as a side-effect, it may play the rûle of genericity. The use of this notion of inheritance is shown by means of the GSBL specification language built around this new concept, whose use and formal semantics are sketched.
Key words and phrasesAlgebraic specification inheritance genericity specification languages
Unable to display preview. Download preview PDF.
- [BG77]Burstall, R.M.; Goguen, J.A. “Putting theories together to make specifications”, Proc. V IJCAI, Cambridge Mass., 1977, pp. 1045–1058.Google Scholar
- [BG80]Burstall, R.M.; Goguen, J.A. “The semantics of Clear, a specification language”, Proc. Winter School on Abstract Software Specification, Springer LNCS 86, pp. 292–332, 1980.Google Scholar
- [CAR84]Cardelli, L. “The semantics of multiple inheritance”, Proc. Colloquium on the Semantics of Data Types, Sophia-Antipolis, 1984.Google Scholar
- [EWT82]Ehrig, H., Wagner, E.G. Thatcher, J.W. “Algebraic constraints for specifications and canonical form results”, Institut für Software und Theoretische Informatik, T.U. Berlin Bericht Nr. 82-09, 1982.Google Scholar
- [EM85]Ehrig, H., Mahr, B. “Fundamentals of algebraic specification I”, EATCS Monographs on Theor. Comp. Sc., Springer-Verlag, 1985.Google Scholar
- [FGJM85]Futatsugi, K, Goguen, J.A., Jouannaud, J.-P., Meseguer, J., “Principles of OBJ2”, Proc. 12th POPL, Austin 1985.Google Scholar
- [GB80]Goguen, J.A., Burstall, R.M. “CAT, a system for the structured elaboration of correct programs from structured specifications”, Report CSL-118, Comp. Sc. Lab., SRI Int., 1980.Google Scholar
- [GM85]Goguen, J.A.; Meseguer, J. “Order-sorted algebra I: partial and overloaded operators, errors and inheritance”, SRI Int., Comp. Sc. Lab. Rep., 1985.Google Scholar
- [MEY86]Meyer B. “Genericity versus Inheritance”, Proc. ACM conf Object-Oriented Programming Syst, Languages, and Applications, ACM, New York, 1986, pp. 391–405Google Scholar
- [MEY86]Meyer B. “Reusability: The Case for Object-Oriented Design”, IEEE Trans. Software Eng. March 1987, pp. 50–65.Google Scholar
- [RE180]Reichel, H. “Initially restricting algebraic theories”, Proc. MFCS 80, Springer LNCS 88 (1980), pp. 504–514.Google Scholar
- [SAN81]Sannella, D. “A new semantics for Clear”, Report CSR-79-8, Univ. of Edinburgh, 1981.Google Scholar