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.
Preview
Unable to display preview. Download preview PDF.
References
H. Abelson and G. J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press, Cambridge, Mass., 1985.
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.
Tonly L. Hansen. The C++ Answer Book. Addison Wesley, 1990.
B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall Software Series, Englewood Cliffs, New Jersey, second edition, 1988.
John McCarthy. Recursive functions of symbolic expressions and their computation by machine I. Journal of the ACM, 3:184–195, 1960.
V. F. Russo and S. M. Kaplan. A C++ interpreter for scheme. In Proceedings of the C++ workshop. Usenix Assoc., 1988.
Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, second edition, 1991.
Stephen Wolfram. Mathematica: A System for Doing Mathematics by Computer. Addison-Wesley, second edition, 1991.
Author information
Authors and Affiliations
Editor information
Rights 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