Skip to main content

AlgBench: An object-oriented symbolic core system

  • Conference paper
  • First Online:
Design and Implementation of Symbolic Computation Systems (DISCO 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 721))

Abstract

AlgBench is a workbench for the design, implementation and performance measurement of algorithms for symbolic computation, including computer algebra. It provides an interpreter for a symbolic language and a skeleton for implementing data types and algorithms in all areas of symbolic computation. An object-oriented design makes incorporation of new code easy. A compiled implementation language was chosen to allow measurements of efficiency of algorithms and data structures down to machine level.

The interpreter provides a sophisticated scanner and parser for a symbolic functional language. A term rewriting system underlies the evaluator. The evaluator uses the ”infinite evaluation” paradigm. Terms are transformed according to user-defined and built-in rules until no more rules match. In traditional symbolic computation systems this evaluator is a routine that dispatches on the type of the expression. In an object-oriented system this is implemented much cleaner as a virtual method. The pattern matcher and unifier is also implemented in this way. This leads to a transparent design, completely different from traditional systems. It is a strong point-in-case for object-oriented design methodology.

The data types provided are those of a symbolic system: symbols, numbers, and composite expressions (isomorphic to Lisp lists and Mathe-matica expressions). Efficiency is gained by deriving subtypes of these for certain kinds of expressions (e.g. lists, pattern objects, polynomials). This system allows easy implementation and comparison of algorithms. Currently the following are investigated: Parallel/vector arbitrary precision arithmetic, parallel pattern matching, polynomials over finite fields, and interval arithmetic. AlgBench is written in AT&T CH++ V2.0.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Abelson and G. J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press, Cambridge, Mass., 1985.

    Google Scholar 

  2. J. H. Davenport. Current problems in computer algebra systems design. In A. Miola, editor, Design and Implementation of Symbolic Computation Systems (Proceedings of DISCO '90), volume 429 of SLNCS. Springer Verlag, 1990.

    Google Scholar 

  3. Tonly L. Hansen. The C++ Answer Book. Addison Wesley, 1990.

    Google Scholar 

  4. B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall Software Series, Englewood Cliffs, New Jersey, second edition, 1988.

    Google Scholar 

  5. John McCarthy. Recursive functions of symbolic expressions and their computation by machine I. Journal of the ACM, 3:184–195, 1960.

    Google Scholar 

  6. V. F. Russo and S. M. Kaplan. A C++ interpreter for scheme. In Proceedings of the C++ workshop. Usenix Assoc., 1988.

    Google Scholar 

  7. Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, second edition, 1991.

    Google Scholar 

  8. Stephen Wolfram. Mathematica: A System for Doing Mathematics by Computer. Addison-Wesley, second edition, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John Fitch

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Maeder, R.E. (1993). AlgBench: An object-oriented symbolic core system. In: Fitch, J. (eds) Design and Implementation of Symbolic Computation Systems. DISCO 1992. Lecture Notes in Computer Science, vol 721. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57272-4_24

Download citation

  • DOI: https://doi.org/10.1007/3-540-57272-4_24

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57272-5

  • Online ISBN: 978-3-540-48031-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics