Matching and unification for the object-oriented symbolic computation system AlgBench

  • Georgios Grivas
  • Roman E. Maeder
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 722)


Term matching has become one of the most important primitive operations for symbolic computation. This paper describes the extension of the object-oriented symbolic computation system AlgBench with pattern matching and unification facilities. The various pattern objects are organized in subclasses of the class of the composite expressions. This leads to a clear design and to a distributed implementation of the pattern matcher in the subclasses. New pattern object classes can consequently be added easily to the system. Huet's and our simple mark and retract algorithm for standard unification as well as Stickel's algorithm for associative commutative unification have been implemented in an object-oriented style. Unifiers are selected at runtime. We extend Mathematica's type-constrained pattern matching by taking into account inheritance information from a user-defined hierarchy of object types. The argument unification is basically instance variable unification. The improvement of the pattern matching operation of a rule- and object-based symbolic computation system with unification in an object-oriented way seems to be very appropriate.


Pattern Match Symbolic Computation Object Type Functional Language Registered Trademark 
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. 1.
    A. Aho, J. Hopcroft, and J. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.Google Scholar
  2. 2.
    H. Ait-Kaci and R. Nasr. Login: A logic programming language with built-in in-heritance. J. of Logic Programming, 3:185–215, 1986.CrossRefGoogle Scholar
  3. 3.
    P. America. Inheritance and subtyping in a parallel object-oriented language. In ECOOP'87, 1987.Google Scholar
  4. 4.
    H. Buerckert. Opening the AC-unification race. J. of Automated Reasoning, 4, 1988.Google Scholar
  5. 5.
    B.W. Char, K.O. Geddes, G.H. Gonnet, M.B. Monagan, and S.M. Watt. MAPLE: Reference Manual. University of Waterloo, 1988. 5th edition.Google Scholar
  6. 6.
    D. de Champeaux. About the Paterson-Wegman linear unification algorithm. J. of Computer and System Sciences, 32, 1986.Google Scholar
  7. 7.
    F. Fages. Associative commutative unification. J. of Symbolic Computation, 3:257–275, 1987.Google Scholar
  8. 8.
    R. Fateman. A review of Mathematica. J. of Symbolic Computation, May 1992.Google Scholar
  9. 9.
    M. Fay. First order unification in equational theories. In 4th CADE'79, 1979.Google Scholar
  10. 10.
    P. Hudak, S. Peyton-Jones, and P. Wadler. Report on the programming language Haskell. Technical report, Department of Computer Science, Yale University, August 1991.Google Scholar
  11. 11.
    R. Jenks and R. Sutor. AXIOM, The Scientific Computation System, Springer-Verlag, 1992.Google Scholar
  12. 12.
    M. Kay. Functional grammar. 5th Annual Meeting of the Berkeley Linguistics Society, Berkeley, California, 1979.Google Scholar
  13. 13.
    Roman E. Maeder. AlgBench: An object-oriented symbolic core system. In J. H. Davenport, editor, Proc. of Design and Implementation of Symbolic Computation Systems DISCO '92. To appear.Google Scholar
  14. 14.
    Roman E. Maeder. Programming in Mathematica. Addison-Wesley, second edition, 1991.Google Scholar
  15. 15.
    R. Milner, M. Tofte, and R. Harper. The definition of Standard ML. MIT Press, Cambridge, MA, 1990.Google Scholar
  16. 16.
    J.A. Robinson. A machine-oriented logic based on the resolution principle. J. of the ACM, 1965.Google Scholar
  17. 17.
    D. Turner. Miranda: A non-strict functional language with polymorphic types. In Functional Programming Languages and Computer Architecture FPCA '85, September 1985.Google Scholar
  18. 18.
    J. Vitter and R. Simons. New classes for parallel complexity: A study of unification and other complete problems for P. IEEE Transactions on Computers, C-35(5), May 1986.Google Scholar
  19. 19.
    Stephen Wolfram. Mathematica: A System for Doing Mathematics by Computer. Addison-Wesley, second edition, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Georgios Grivas
    • 1
  • Roman E. Maeder
    • 1
  1. 1.Theoretical Computer ScienceETH ZurichSwitzerland

Personalised recommendations