An implementation of OBJ2: An object-oriented language for abstract program specification

  • S. Sridhar
Session 1 Software Technology
Part of the Lecture Notes in Computer Science book series (LNCS, volume 241)


This paper describes an implementation of a functional and object-oriented programming language called OBJ2. It is a programming language manifestation of a new programming paradigm called parametrization. Parametrization enables programs to be written in as general a form as possible. By choosing suitable parameter values, the generic objects can be tailored to a variety of applications. Theories provide semantic interface requirements of a parametrized object while views formally specify exactly how given objects satisfy given theories. Instantiation mechanisms provide the formal machinery for generating new objects from generic ones. OBJ2 programs are evaluated by interpreting equations as rewrite-rules. The underlying term rewriting system is assumed to have the Church-Rosser and finite termination properties. This implementation was done in Franz Lisp on a Vax 11/750, running Unix.


Canonical Form Actual Object Parametrized Object Module Interpreter Abstract Data Type 
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. [Burstall & Goguen 80]
    Burstall, R. M., and Goguen, J. A. The Semantics of CLEAR, a Specification Language. Lecture Notes in Computer Science, vol. 86., Springer-Verlag, 1980.Google Scholar
  2. [Futatsugi et al. 85]
    Futatsugi, K., Goguen, J. A., Jouannaud, J. and Mesegeur, J. Principles of OBJ2. In Proceedings, ACM Symposium on Principle of Programming Languages, 1985.Google Scholar
  3. [Goguen 84]
    Goguen, J. A. Parametrized Programming. IEEE Transactions on Software Engineering, pp. 528–543, September 1984.Google Scholar
  4. [Goguen & Meseguer 82]
    Goguen, J.A and Meseguer, J. Rapid Prototyping in the OBJ2 Executable Specification Language. Software Engineering Notes 7(5), ACM SIGSOFT, pp 75–84, 1982.Google Scholar
  5. [Goguen & Tardo 79]
    Goguen, J. A. and Tardo, J. An Introduction to OBJ: A Language for writing and Testing Software Specifications. In Specification of Reliable Software, pp. 170–189, IEEE Press, 1979.Google Scholar
  6. [Goguen et al. 85]
    Goguen, J. A., Jouannaud, J. and Meseguer, J. Operational Semantics for Order-sorted Algebra. Technical Report, SRI International, Menlo Park, CA, 1985.Google Scholar
  7. [Goguen, et al. 78]
    Goguen, J. A., Thatcher, J. W. and Wagner, E. An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. Current Trends in Programming Methodology IV:80–149, 1978.Google Scholar
  8. [Knuth & Bendix 70]
    Knuth, D. E. and Bendix, P. Simple Word Problems in Universal Algebra. In Computation Problems in Abstract Algebra, Leech, J. (ed.), pp. 263–297, Pergamom Press, 1970.Google Scholar
  9. [Nilsson 80]
    Nilsson, N. J. Principles of Artificial Intelligence. Tioga Press, 1980.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • S. Sridhar
    • 1
  1. 1.Tektronix, Inc. Artificial Intelligence MachinesWilsonvilleUSA

Personalised recommendations