Structuring and modularizing algebraic specifications: the PLUSS specification language, evolutions and perspectives

  • Marie-Claude Gaudel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 577)


The formal specification of abstract data types using axioms was proposed about fifteen years ago by several authors. It has become the basis of the so-called algebraic specification methods. Numerous algebraic specification languages have been designed and experimented and several specification languages make use of the algebraic approach to specify data types.

This paper reports the experience of the author in the design of the PLUSS specification language and in using it for various case studies: PLUSS has evolved a lot since its beginning and will still evolve. A rationale for its past evolution and a discussion of some possible future changes is given. Moreover, some lessons learned from the case studies on the advantages and drawbacks of algebraic specifications are reported.


Specification Language Software Reusability Exception Handling Abstract Data Type Algebraic Specification 
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. [ADJ 76]
    Goguen, J.A., Thatcher, J.W. and Wagner E.G., “An initial algebra approach to the specification, correctness and implementation of abstract data types”, in Current Trends in Programming Methodology, Vol.4: Data Structuring, edited by R.T. Yeh, pp.80–149, Prentice-Hall, 1978.Google Scholar
  2. [Bid 87]
    Bidoit M., “The stratified loose approach: a generalization of initial and loose semantics”, in Recent Trends in Data Type Specification, selected papers of the 5th Workshop on Specifications of Abstract Data Types, Gullane, Ecosse, Springer-Verlag L.N.C.S. nℴ 332, pp. 1–22, Sept. 1987.Google Scholar
  3. [Bid 89]
    Bidoit M., “PLUSS, un langage pour le développement de spécifications algébriques modulaires”, thèse d'Etat, Université de Paris-Sud, Orsay, Mai 1989.Google Scholar
  4. [Bro 91]
    Broy M., opening lecture of the 6th IEEE International Worshop on Software Specification and Design, Como, Sept. 1991.Google Scholar
  5. [BB 83]
    Bidoit M. and Biebow B., “Application de la méthode de spécification et de programmation des exceptions et des erreurs à des exemples choisis en téléphonie”, rapport final du poste 4 du marché DAII nℴ 82.35.033, Sept. 1983.Google Scholar
  6. [BBC 86]
    Bernot G., Bidoit M., Choppy C., “Abstract data types with exception handling: an initial approach based on a distinction between exceptions and errors”, Theoretical Computer Science, Vol.46, Nℴ1, Janvier 1986, pp.13–46.Google Scholar
  7. [B2G3 85]
    Bidoit M., Biebow B., Gaudel M.-C., Gresse C., Guiho G., “Exception handling: formal specification and systematic program construction”, I.E.E.E. Transactions on Software Engineering, Vol. SE-11, Nℴ3, March 1985, pp.242–252.Google Scholar
  8. [BG 77]
    Burstall, R. M. and Goguen, J.A., “Putting theories together to make specifications”, in Proceedings of the 5th International Joint Conference on Artificial Intelligence, Cambridge, 1977, pp. 1045–1058.Google Scholar
  9. [BG 80]
    Burstall, R. M. and Goguen, J.A., “The semantics of CLEAR, a specification language”, in Proceedings of the Advanced Course on Abstract Software Specifications, Copenhagen, LNCS nℴ86, pp.292–332, Springer-Verlag, 1980.Google Scholar
  10. [BGM 89]
    Bidoit, M., Gaudel, M-C. and Mauboussin, A., “How to make algebraic specifications more understandable? An experiment with the PLUSS specification language”, Science of Computer Programming, 46-1, pp. 1–38, June 1989.Google Scholar
  11. [BKLOS 91]
    Bidoit M., Kreowski H.-J., Lescanne P., Orejas F. and Sannella D. “Algebraic System Specification and Development: a survey and annotated bibliography”, LNCS nℴ 501, Springer-Verlag, 1991.Google Scholar
  12. [BLG 91]
    Bernot G. and Le Gall P., “Exception handling and term labelling”,submitted for publication.Google Scholar
  13. [Dau 92]
    Dauchy P., forthcoming thesis, Université de Paris-Sud, 1992.Google Scholar
  14. [Des 83]
    Despeyroux-Savonitto J., “An algebraic specification of a Pascal compiler”, SIGPLAN notices, vol. 18, nℴ12, 1983.Google Scholar
  15. [DM 91]
    Dauchy P., Marre B., “Test data Selection from the Algebraic Specification of a module of an Automatic Subway”, European Software Engineering Conference: ESEC'91, Milan, Oct. 1991, LNCS nℴ 550, pp. 80–100.Google Scholar
  16. [DO 91]
    Dauchy P., Ozello P., “Experiments with Formal Specifications on MAGGALY”, Second International Conference on Applications of Advanced Technologies in Transportation Engineering, Mineapolis, August 1991.Google Scholar
  17. [EFH 83]
    Ehrig H., Fey W., and Hansen H., “ACT-ONE: an algebraic specification language with two levels of semantics”, Technische Universität Berlin, 1983.Google Scholar
  18. [FGJM 87]
    Futatsugi, K., Goguen, J.A., Jouannaud, J-P. and Meseguer, J., “Principles of OBJ2”, in Proceedings of the 12th ACM Symposium on Principles Of Programming Languages, 1987, pp. 51–60.Google Scholar
  19. [Gau 85]
    Gaudel, M.-C., “Towards Structured Algebraic Specifications”, in Esprit'85 Status Report, pp.493–510, North-Holland,1986.Google Scholar
  20. [Gau 91]
    Gaudel M-C., “Algebraic Specifications”, Chapter 22 in Software Engineer's Reference Book, John Mc Dermid ed., Butterworths, 1991.Google Scholar
  21. [Gui 84]
    Guiho G., Automatic Programming using abstract data types. Key-note Lecture, IJCAI 83, Karlsrühe, Aug. 83.Google Scholar
  22. [GB 84]
    Goguen, J. A. and Burstall, R.M., “Introducing Institutions”, in Proceedings of the Logics of Programming Workshop, Carnegie-Mellon University, LNCS nℴ164, pp. 221–256, Springer-Verlag, 1984.Google Scholar
  23. [GH 86]
    Guttag, J.V. and Horning, J.J., “Report on the Larch shared language”, Science of Computer Programming, vol. 6. pp. 103–134, 1986.Google Scholar
  24. [GM 88]
    Gaudel, M.-C. and Moineau, Th., “A theory of Software Reusability”, in proceedings of European Symposium On Programming: ESOP'88, LNCS nℴ300, pp. 115–130, Springer-Verlag, 1988.Google Scholar
  25. [Gut 75]
    Guttag, J.V., “The specification and application to programming of abstract data types”, Ph. D. Thesis, University of Toronto, 1975.Google Scholar
  26. [Kap 89]
    Kaplan S., “Algebraic specification of Concurrent Systems”, Theoretical Computer Science, Nℴ 1, Volume 69, pp. 69–115, Dec. 1989.Google Scholar
  27. [Moi 91]
    Moineau Th., “Réutilisation de Logiciel: une Approche Algébrique, son Application à Ada et les outils associés”, Nouvelle thèse, Université Paris-Sud, Orsay, Janvier 1991.Google Scholar
  28. [MBGHP 89]
    Mauboussin A., Bidoit M., Gaudel M-C., Hagelstein J., Perdrix H., “From an ERAE Requirement Specification to a PLUSS Algebraic Specification: a case study”, METEOR Workshop, Algebraic Methods II, Mierlo, Septembre 1989, LNCS nℴ 490, pp 395–432.Google Scholar
  29. [MG 91]
    Moineau Th. and Gaudel M-C., “Software reusability through formal specifications”, in proceedings of the 1st International Workshop on Software Reusability, Dordmund, July 1991.Google Scholar
  30. [NHWG 88]
    Nielsen M., Havelund K., Wagner K. and George C., “The RAISE Language, Method and Tools”, in Proceedings of VDM'88, LNCS nℴ328, pp. 376–405, Springer-Verlag,1988.Google Scholar
  31. [SS 91]
    Saake G. and Sernadas A. eds., “Information Systems-correctness and reusability”, Proceedings of Worshop IS-CORE'91, ESPRIT BRA WG 3023, London, Sept. 1991, Informatik-Berichte 91-03, Technische Universität Braunschweig.Google Scholar
  32. [SST 90]
    Sannella, D.T, Sokolowski S. and Tarlecki, A., “Toward formal development of programs from algebraic specifications: parameterisation revisited”, Bericht 6/90, Universität Bremen, April 1990.Google Scholar
  33. [ST 86]
    Sannella, D.T and Tarlecki, A. “Extended ML: an institution-independent framework for formal program development”, In Proceedings Workshop on Category Theory and Computer Programming, Guilford, LNCS nℴ240, pp.364–389, Springer-Verlag, 1986.Google Scholar
  34. [ST 83]
    Sannella, D.T. and Wirsing, M., “A kernel language for algebraic specification and implementation”, in Proceedings Colloquium on Foundations of Computation Theory, Linkoping, LNCS nℴ158, pp.413–427, Springer-Verlag, 1983.Google Scholar
  35. [Zil 74]
    Zilles S.N., “Algebraic specifications of abstract data types”, Computation Structures Group memo 119, Laboratory of Computer Science, MIT, 1974.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Marie-Claude Gaudel
    • 1
  1. 1.LRI, Université de Paris-Sud et CNRS (UA 410)Orsay cedexFrance

Personalised recommendations