Advertisement

An introduction to OBJ 3

  • Joseph Goguen
  • Claude Kirchner
  • Hélène Kirchner
  • Aristide Mégrelis
  • José Meseguer
  • Timothy Winkler
Part 2 System Presentations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 308)

Abstract

OBJ 3 is a new implementation of the OBJ language, with a new efficient operational semantics based on order-sorted term-rewriting. OBJ is a declarative language, with mathematical semantics given by order-sorted equational logic; its statements are equations that state properties the solution should have; i.e., they describe the problem to be solved. In addition, OBJ has a uniquely powerful generic module mechanism, including non-executable “theories” as well as executable “objects,” plus “module expressions” that describe and construct whole subsystems. OBJ also has user-definable abstract data types with user-definable mixfix syntax and a powerful and flexible type system that supports overloading and subtypes. OBJ is thus a wide-spectrum language that elegantly integrates coding, specification and design into a single framework.

Keywords

Operational Semantic Module Expression Equational Logic Graph Reduction Requirement Theory 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    C. Cavenathi, M. De Zanet, and Giancarlo Mauri. MC-OBJ: a C Interpreter for OBJ. Technical Report Draft, Dipmentarto Scienze dell'Informazione, Universita de Milano, 1987.Google Scholar
  2. [2]
    Derek Coleman, Robin Gallimore, and Victoria Stavridou. The design of a rewrite rule interpreter from algebraic specifications. IEEE Software Engineering Journal, July:95–104, 1987.Google Scholar
  3. [3]
    Kokichi Futatsugi, Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Principles of OBJ2. In Brian Reid, editor, Proceedings of 12th ACM Symposium on Principles of Programming Languages, pages 52–66, Association for Computing Machinery, 1985.Google Scholar
  4. [4]
    Kokichi Futatsugi, Joseph Goguen, José Meseguer, and Koji Okada. Parameterized programming in OBJ2. In Robert Balzer, editor, Proceedings, Ninth International Conference on Software Engineering, pages 51–60, IEEE Computer Society Press, March 1987.Google Scholar
  5. [5]
    J.A. Goguen and J. Meseguer. Extensions and foundations of object-oriented programming. In SIGPLAN Notices, 1986.Google Scholar
  6. [6]
    Joseph Goguen. Order Sorted Algebra. Technical Report, UCLA Computer Science Department, 1978. Semantics and Theory of Computation Report 14.Google Scholar
  7. [7]
    Joseph Goguen. Parameterized programming. Transactions on Software Engineering, SE-10(5):528–543, September 1984.Google Scholar
  8. [8]
    Joseph Goguen. Some design principles and theory for OBJ-0, a language for expressing and executing algebraic specifications of programs. In Proceedings, Mathematical Studies of Information Processing, pages 425–473, Springer-Verlag, 1979. Lecture Notes in Computer Science, Volume 75; Proceedings of a Workshop held August 1978.Google Scholar
  9. [9]
    Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Operational semantics of order-sorted algebra. In W. Brauer, editor, Proceedings, 1985 International Conference on Automata, Languages and Programming, Springer-Verlag, 1985. Lecture Notes in Computer Science, Volume 194.Google Scholar
  10. [10]
    Joseph Goguen, Claude Kirchner, Sany Leinwand, José Meseguer, and Timothy Winkler. Progress report on the rewrite rule machine. IEEE Computer Architecture Technical Committee Newsletter, March:7–21, 1986.Google Scholar
  11. [11]
    Joseph Goguen, Claude Kirchner, and José Meseguer. Concurrent term rewriting as a model of computation. In Robert Keller and Joseph Fasel, editors, Proceedings, Graph Reduction Workshop, pages 53–93, Springer-Verlag, 1987. Lecture Notes in Computer Science, Volume 279.Google Scholar
  12. [12]
    Joseph Goguen, Claude Kirchner, José Meseguer, and Timothy Winkler. OBJ as a language for concurrent programming. In Proceedings, Second International Supercomputing Conference, Volume I, pages 195–198, International Supercomputing Institute, Inc., 1987.Google Scholar
  13. [13]
    Joseph Goguen and José Meseguer. Eqlog: equality, types, and generic modules for logic programming. In Douglas DeGroot and Gary Lindstrom, editors, Functional and Logic Programming, pages 295–363, Prentice-Hall, 1986. An earlier version appears in Journal of Logic Programming, Volume 1, Number 2, pages 179–210, September 1984.Google Scholar
  14. [14]
    Joseph Goguen and José Meseguer. Models and equality for logical programming. In Hartmut Ehrig, Giorgio Levi, Robert Kowalski, and Ugo Montanari, editors, Proceedings, 1987 TAPSOFT, pages 1–22, Springer-Verlag, 1987. Lecture Notes in Computer Science, Volume 250; also, Technical Report, Center for the Study of Language and Information, Stanford University.Google Scholar
  15. [15]
    Joseph Goguen and José Meseguer. Order-Sorted Algebra I: Partial and Overloaded Operations, Errors and Inheritance. Technical Report To appear, SRI International, Computer Science Lab, 1988. Given as lecture at Seminar on Types, Carnegie-Mellon University, June 1983.Google Scholar
  16. [16]
    Joseph Goguen and José Meseguer. Order-sorted algebra solves the constructor-selector, multiple representation and coercion problems. In Proceedings, Second Symposium on Logic in Computer Science, pages 18–29, IEEE Computer Society Press, 1987. Also Technical Report CSLI-87-92, Center for the Study of Language and Information, Stanford University, March 1987.Google Scholar
  17. [17]
    Joseph Goguen and José Meseguer. Remarks on remarks on many-sorted equational logic. Bulletin of the European Association for Theoretical Computer Science, 30:66–73, October 1986. Also in SIGPLAN Notices, Volume 22, Number 4, pages 41–48, April 1987.Google Scholar
  18. [18]
    Joseph Goguen, José Meseguer, and David Plaisted. Programming with parameterized abstract objects in OBJ. In Theory and Practice of Software Technology, pages 163–193, North-Holland, 1983.Google Scholar
  19. [19]
    Joseph Goguen and Joseph Tardo. An introduction to OBJ: a language for writing and testing software specifications. In Marvin K. Zelkowitz, editor, Specification of Reliable Software, pages 170–189, IEEE Press, 1979. Reprinted in Software Specification Techniques, Nehan Gehani and Andrew McGettrick, Eds., Addison-Wesley, 1985, pages 391–420.Google Scholar
  20. [20]
    Joseph Goguen and Joseph Tardo. OBJ-0 Preliminary Users Manual. Semantics and Theory of Computation Report 10, UCLA, 1977.Google Scholar
  21. [21]
    Joseph A. Goguen. Higher-order functions considered unnecessary for higher-order programming. In Proceedings, University of Texas, Year of Programming, Institute on Declarative Programming, Addison-Wesley, 1988. To appear.Google Scholar
  22. [22]
    Christoph M. Hoffmann and Michael O'Donnell. Programming with equations. Transactions on Programming Languages and Systems, 1(4):83–112, 1982.CrossRefGoogle Scholar
  23. [23]
    Gérard Huet and Jean-Jacques Levy. Computations in Non-ambiguous Linear Term Rewriting Systems. Technical Report, INRIA Laboria, 1979.Google Scholar
  24. [24]
    Thomas Johnsson. Target code generation from G-machine code. In Joseph H. Fasel and Robert M. Keller, editors, Graph Reduction, pages 119–159, Springer-Verlag, 1987. Lecture Notes in Computer Science, Volume 279.Google Scholar
  25. [25]
    S. Kaplan. A compiler for term rewriting system. In Proceedings Second Conference on Rewriting Techniques and Applications, Springer Verlag, Bordeaux (France), May 1987.Google Scholar
  26. [26]
    Richard B. Kieburtz. The G-machine: a fast, graph-reduction evaluator. In Jean-Pierre Jouannaud, editor, Proceedings, Conference on Functional Programming Languages and Computer Architecture, Springer-Verlag, 1985. Lecture Notes in Computer Science, Volume 201.Google Scholar
  27. [27]
    C. Kirchner, H. Kirchner, and J. Meseguer. Operational semantics of OBJ3. Technical Report 87-R-87, Centre de Recherche en Informatique de Nancy, 1987.Google Scholar
  28. [28]
    Sany Leinwand and Joseph Goguen. Architectural options for the rewrite rule machine. In Steven Kartashev and Svetlana Kartashev, editors, Proceedings, Second International Supercomputing Conference, Volume I, pages 63–70, International Supercomputing Institute, Inc., 1987.Google Scholar
  29. [29]
    Ugo Montanari and Joseph Goguen. An Abstract Machine for Fast Parallel Matching of Linear Patterns. Technical Report SRI-CSL-87-3, Computer Science Lab, SRI International, May 1987.Google Scholar
  30. [30]
    Gert Smolka, Werner Nutt, José Meseguer, and Joseph Goguen. Order-sorted equational computation. 1987. To appear in Proceedings, Colloquium on the Resolution of Equations in Algebraic Structures, held in Lakeway TX, May 1987.Google Scholar
  31. [31]
    S. Sridhar. An implementation of OBJ2: an object-oriented language for abstract program specification. In Proceedings, Sixth Conference on Foundations of Software Technology and Theoretical Computer Science, pages 81–95, Springer-Verlag, 1986. Lecture Notes in Computer Science, Volume 241.Google Scholar
  32. [32]
    Timothy Winkler, Sany Leinwand, and Joseph Goguen. Simulation of concurrent term rewriting. In Steven Kartashev and Svetlana Kartashev, editors, Proceedings, Second International Supercomputing Conference, Volume I, pages 199–208, International Supercomputing Institute, Inc., 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Joseph Goguen
  • Claude Kirchner
  • Hélène Kirchner
  • Aristide Mégrelis
  • José Meseguer
  • Timothy Winkler

There are no affiliations available

Personalised recommendations