OBSCURE a specification language for abstract data types

Abstract

OBSCURE is a specification language for abstract data types. It differs from classical specification languages by handling models rather than theories. The goal of the paper is to present a complete and precise description ofOBSCURE.

First, the different language constructs are illustrated by the help of examples. The syntax and semantics of the language are then defined formally. The consistency of these definitions is stated in two theorems. Next, a set of formulas is associated with each specification. A further theorem states that these formulas guarantee the persistency or, more precisely, the absence of logical inconsistencies. A discussion of further language concepts-such as parameterization and strong typing-follows. Finally, a methodology for the development of software with the help ofOBSCURE is sketched and some practical results are presented.

This is a preview of subscription content, log in to check access.

References

  1. 1.

    Bergstra, J.A., Heering, J., Klint, P.: Algebraic specification. New York: ACM-Press 1989

    Google Scholar 

  2. 2.

    Bidoit, M.: PLUSS, a language for the development of modular algebraic specifications. Thèse d'Etat, Université Paris-Sud, 1989

  3. 3.

    Bidoit, M., Gaudel, M.-C., Mauboussin, A.: How to make algebraic specifications more understandable: An experiment with the PLUSS specification language. Sci. Comput. Programm.12(1), 1–38 (1989)

    Google Scholar 

  4. 4.

    Bidoit, M., Kreowski, H.-J., Lescanne, P., Orejas, F., Sannella, D. (Eds.): Algebraic system specification and development. (Lect. Notes Comput. Sci., Vol. 501) Berlin Heidelberg New York: Springer 1991

    Google Scholar 

  5. 5.

    Broy, M. et al.: The requirement and design specification language SPECTRUM. Internal Report, Techn. Univ. München (May 1992)

  6. 6.

    Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification language. In: Proc. 1979 Copenhagen Winter School. (Lect. Notes Comput. Sci., Vol. 86, pp. 292–332) Berlin Heidelberg New York: Springer 1980

    Google Scholar 

  7. 7.

    Cartwright, R.: A constructive alternative to abstract data type definitions. In: Proc. 1980 LISP Conf., Stanford Univ., pp. 46–55 (1980).

  8. 8.

    Dollin, Ch., Arnold, P., Coleman, D., Gilchrist, H., Rush, T.: Axis tutorial: a simple filing system. Internal Report HPL-ISC-TM-88-18, Hewlet-Packard Ltd., Bristol (1988).

    Google Scholar 

  9. 9.

    Ehrich, H.D., Gogolla, M., Lipeck, U.: Algebraische Spezifikation abstrakter Datentypen. Stuttgart: Teubner 1989

    Google Scholar 

  10. 10.

    Ehrig, H., Mahr, B.: Fundamentals of algebraic specification 1-equations and initial semantics. Berlin Heidelberg New York: Springer 1985

    Google Scholar 

  11. 11.

    Ehrig, H., Mahr, B.: Fundamentals of algebraic specification 2-module specifications and constraints. Berlin Heidelberg New York: Springer 1990

    Google Scholar 

  12. 12.

    Fey, W.: Pragmatics, concepts, syntax, semantics and correctness notions of ACT TWO: An algebraic module specification and interconnection language. Internal report 1988/26, TU Berlin, 1988

  13. 13.

    Fuchs, J., Hoffmann, A., Meiss, L., Philippi, J., Stolz, M., Wolf, M., Zeyer, J.: The OBSCURE manual. Part 1: Editing and rapid prototyping. Internal Report, Universität Saarbrücken (1991)

  14. 14.

    Goguen, J.A., Winkler, T.: Introducing OBJ3. Int. Rep. SRI-CSL-88-9. Comput. Sci. Laboratory SRI International. 1988

  15. 15.

    Goguen, J.A., Burstall, R.M.: Institutions: Abstract model theory for specification and programming. J.ACM39 (1), 95–146 (1992)

    Google Scholar 

  16. 16.

    Heckler, R., Loeckx, J., Uhrig, St.: Ein Fallbeispiel: Das Dateisystem von UNIX. Internal Report WP 91/30. Universität Saarbrücken (1991)

  17. 17.

    Ayari, A., Friedrich, S., Heckler, R., Loeckx, J.: Das Fallbeispiel LEX. Internal Report WP92/39, Universität Saarbrücken (December 1992)

  18. 18.

    Hettler, R.: Spezifikation eines LEX-artigen Scanners. Eine SPECTRUM Fallstudie. Internal Report, TU München (November 1992)

  19. 19.

    Klaeren, H.A.: A constructive method for abstract algebraic software specification. Theor. Comput. Sci.30, 139–204 (1984)

    Google Scholar 

  20. 20.

    Krieg-Brückner, B.: Algebraic formalisation of program development by transformation. In: Ganzinger H. (ed.) Proc. ESOP 88. (Lect. Notes Comput. Sci., Vol. 300) Berlin Heidelberg New York: Springer 1988

    Google Scholar 

  21. 21.

    Krieg-Brückner, B., Sannella, D.: Structuring specifications in-the-large and in-the-small: Higher-order functions, dependent types and inheritance in SPECTRAL. Proceedings TAPSOFT 91. (Lect. Notes Comput. Sci., Vol. 494, pp. 313–336) Berlin Heidelberg New York: Springer 1991

    Google Scholar 

  22. 22.

    Lehmann, T.: A notion of implementation of the specification language OBSCURE, Proc. Workshop on Abstract Data Types (Wusterhausen). (Lect. Notes Comput. Sci., Vol. 534, pp. 141–165) Berlin Heidelberg New York: Springer 1991

    Google Scholar 

  23. 23.

    Lehmann, T., Loeckx, J.: The specification language of OBSCURE. In: Sannella, D., Tarlecki, A. (eds.), Proc. of the 5th Workshop on Specification of Abstract Data Types. (Lect. Notes Comput. Sci., Vol. 332, pp. 131–153) Berlin Heidelberg New York: Springer 1988

    Google Scholar 

  24. 24.

    Loeckx, J.: Algorithmic specifications: a constructive specification method for abstract data types. ACM Trans. Program. Lang. Syst.9, 646–685 (1987)

    Google Scholar 

  25. 25.

    Loeckx, J.: The specification system OBSCURE. Bull. EATCS40, 169–171 (1990)

    Google Scholar 

  26. 26.

    Loeckx, J., Zeyer, J.: A calculus for OBSCURE. Internal Report (to appear)

  27. 27.

    Milner, R.: Logic for computable functions: description of a machine implementation. SIGPLAN NOTICES7, 1–6 (1972)

    Google Scholar 

  28. 28.

    Milner, R., Tofte, M., Harper, R.: The definition of standard ML. Cambridge, MA: MIT Press 1990

    Google Scholar 

  29. 29.

    Partsch, H.: Specification and transformation of programs. Berlin Heidelberg New York: Springer 1990

    Google Scholar 

  30. 30.

    Sannella, D.: A set-theoretic semantics of CLEAR. Acta Inf.21, 443–472 (1984)

    Google Scholar 

  31. 31.

    Sannella, D., Tarlecki, A.: Extended ML: past, present and future. Proc. Workshop on Abstract Data Types (Wusterhausen). (Lect. Notes Comput. Sci., Vol. 534, pp. 297–322) Berlin Heidelberg New York: Springer 1991

    Google Scholar 

  32. 32.

    Sannella, D., Sokolowski, S., Tarlecki, A.: Toward formal development of programs from algebraic specifications: parameterisation revisited. Acta Inf.29, 689–736 (1992)

    Google Scholar 

  33. 33.

    Sannella, D., Tarlecki, A.: Toward formal development of ML programs: foundations and methodology. In: Diaz, J., Orejas, F. (eds.) Proc. of TAPSOFT'89. (Lect. Notes Comput. Sci., Vol. 352, pp. 375–389) Berlin Heidelberg New York: Springer 1989

    Google Scholar 

  34. 34.

    Turner, D.A.: Miranda: a non-strict functional language with polymorphic types. In: Goos, G., Hartmanis, J. (eds.) Functional programming and computer architecture. (Lect. Notes Comput. Sci., Vol. 201, pp. 1–16) Berlin Heidelberg New York: Springer 1985

    Google Scholar 

  35. 35.

    Walther, Chr.: Automated termination proofs. Internal Report 17/88, Universität Karlsruhe (1988)

  36. 36.

    Wirsing, M.: Algebraic specification. In: van Leeuwen, J. (ed.) Handbook of theoretical computer science. Amsterdam: North-Holland 1990.

    Google Scholar 

  37. 37.

    Wirsing, M.: Structured algebraic specifications: a kernel language. Theor. Comput. Sci.42, 124–249 (1986)

    Google Scholar 

  38. 38.

    Zeyer, J.: Erweiterung des OBSCURE-Systems. Internal Report WP 92/31, Universität Saarbrücken (1992)

Download references

Author information

Affiliations

Authors

Additional information

Research supported by the Deutsche Forschungsgemeinschaft (DFG).

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Lehmann, T., Loeckx, J. OBSCURE a specification language for abstract data types. Acta Informatica 30, 303–350 (1993). https://doi.org/10.1007/BF01209709

Download citation

Keywords

  • Information System
  • Operating System
  • Data Structure
  • Communication Network
  • Information Theory