Abstract
Advances in computer science, in particular object oriented programming, and software engineering have had little practical impact on computer algebra systems in the last 30 years. The software design of existing systems is still dominated by ad-hoc memory management, weakly typed algorithm libraries and proprietary domain specific interactive expression interpreters. We discuss a modular approach to computer algebra software: usage of state-of-the-art memory management and run-time systems (e.g. JVM) usage of strongly typed, generic, object oriented programming languages (e.g. Java) and usage of general purpose, dynamic interactive expression interpreters (e.g. Python) To illustrate the workability of this approach, we have implemented and studied computer algebra systems in Java and Scala. In this paper we report on the current state of this work by presenting new examples.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Frink, A., Bauer, C., Kreckel, R.: Introduction to the GiNaC framework for symbolic computation within the C++ programming language. J. Symb. Comput. (2002)
Stansifer, R., Baumgartner, G.: A Proposal to Study Type Systems for Computer Algebra. Technical Report 90-07, Johannes Kepler University, Linz, Austria (1990)
Jenks, R., Sutor, R. (eds.): Axiom The Scientific Computation System. Springer, Heidelberg (1992)
Calmet, J., Seiler, W.M.: Computer algebra and field theories. Mathematics and Computers in Simulation 45, 33–37 (1998)
Watt, S.M.: On the future of Computer Algebra Systems at the threshold of 2010. In: Proceedings ASCM-MACIS 2009, pp. 422–430. Kyushu University, Fukuoka (2009)
Wolfram, S.: WolframAlpha. Technical report (2009), http://www.wolframalpha.com/ (accessed January 2010)
Certik, O.: SymPy Python library for symbolic mathematics. Technical report (since 2006), http://code.google.com/p/sympy/ (accessed November 2009)
GWT Developers: Google Web Toolkit consists of a Java - to - JavaScript compiler, user interface API, and related tools. Technical report (2008), http://code.google.com/webtoolkit/ (accessed November 2009)
Eclipse Developers: Eclipse rich client platform (RCP). Technical report (2008), http://www.eclipse.org/ (accessed November 2009)
Kramer, A.C.: MathEclipse is usable as an online Java computer algebra system or Eclipse plugin. Technical report (2009, since 2002), http://www.matheclipse.org/ (accessed November 2009)
Greuel, G., Pfister, G., Schönemann, H.: Singular - A Computer Algebra System for Polynomial Computations. In: Computer Algebra Handbook, pp. 445–450. Springer, Heidelberg (2003)
Greuel, G., Pfister, G.: A Singular introduction to commutative algebra. Springer, Heidelberg (2007)
Stein, W.: SAGE Mathematics Software (Version 2.7). The SAGE Group (since 2005), http://www.sagemath.org (accessed November 2009)
AppEngine Developers: Google App Engine enables you to build and host web apps on the same systems that power Google applications. Technical report (2010), http://code.google.com/appengine (accessed June 2010)
Android Developers: Android is a software stack for mobile devices including an operating system, middleware and key applications. Technical report (2008), http://code.google.com/android/ (accessed November 2009)
Abdali, S.K., Cherry, G.W., Soiffer, N.: An object-oriented approach to algebra system design. In: Char, B.W. (ed.) Proc. SYMSAC 1986, pp. 24–30. ACM Press, New York (1986)
Zippel, R.: Weyl computer algebra substrate. In: Miola, A. (ed.) DISCO 1993. LNCS, vol. 722, pp. 303–318. Springer, Heidelberg (1993)
Parisse, B.: Giac/Xcas, a free computer algebra system. Technical report, University of Grenoble (2008)
Bernardin, L., Char, B., Kaltofen, E.: Symbolic computation in Java: an appraisement. In: Dooley, S. (ed.) Proc. ISSAC 1999, pp. 237–244. ACM Press, New York (1999)
Bernardin, L.: A Java framework for massively distributed symbolic computing. SIGSAM Bull. 33(3), 20–21 (1999)
Norman, A.C.: Further evaluation of Java for symbolic computation. In: ISSAC 2000: Proc. International Symposium on Symbolic and Algebraic Computation 2000, pp. 258–265. ACM, New York (2000)
Niculescu, V.: A design proposal for an object oriented algebraic library. Technical report, Studia Universitatis “Babes-Bolyai” (2003)
Niculescu, V.: OOLACA: an object oriented library for abstract and computational algebra. In: OOPSLA Companion, pp. 160–161. ACM, New York (2004)
Whelan, C., Duffy, A., Burnett, A., Dowling, T.: A Java API for polynomial arithmetic. In: Proc. PPPJ 2003, pp. 139–144. Computer Science Press, New York (2003)
Platzer, A.: The Orbital library. Technical report, University of Karlsruhe (2005), http://www.functologic.com/
Jolly, R.: jscl-meditor - Java symbolic computing library and mathematical editor. Technical report (since 2003), http://jscl-meditor.sourceforge.net/ (accessed November 2009)
Kredel, H.: A systems perspective on A3L. In: Proc. A3L: Algorithmic Algebra and Logic 2005, pp. 141–146. University of Passau (April 2005)
Focalize Developers: Focalize is a software distribution for program certification. Technical report (2005-2010), http://focalize.inria.fr/ (accessed June 2010)
Davenport, H.J., Trager, B.M.: Scratchpad’s view of algebra I: Basic commutative algebra. In: Miola, A. (ed.) DISCO 1990. LNCS, vol. 429, pp. 40–54. Springer, Heidelberg (1990)
Davenport, H.J., Gianni, P., Trager, B.M.: Scratchpad’s view of algebra II: A categorical view of factorization. In: Proc. ISSAC 1991, Bonn, pp. 32–38 (1991)
Davenport, H.J.: Abstract data types in Computer Algebra. In: Nielsen, M., Rovan, B. (eds.) MFCS 2000. LNCS, vol. 1893, pp. 21–35. Springer, Heidelberg (2000)
Bronstein, M.: Sigma\(^{\mbox{{it}}}\) - a strongly-typed embeddable computer algebra library. In: Limongelli, C., Calmet, J. (eds.) DISCO 1996. LNCS, vol. 1128, pp. 22–33. Springer, Heidelberg (1996)
Musser, D., Schupp, S., Loos, R.: Requirement oriented programming - concepts, implications and algorithms. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 12–24. Springer, Heidelberg (2000)
Schupp, S., Loos, R.: SuchThat - generic programming works. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 133–145. Springer, Heidelberg (2000)
Dragan, L., Watt, S.: Performance Analysis of Generics in Scientific Computing. In: Proceedings of Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pp. 90–100. IEEE Computer Society, Los Alamitos (2005)
Freundt, S., Horn, P., Konovalov, A., Linton, S., Roozemond, D.: Symbolic computation software composability protocol (SCSCP) specification, version 1.3. Technical report, SCIEnce Consortium (2009)
OpenMath Consortium: OpenMath, version 2.0. Technical report, OpenMath Consortium (2004), http://www.openmath.org/standard/om20-2004-06-30/omstd20html-0.xml (accessed January 2010)
SCIEnce Consortium: Symbolic computation infrastructure for Europe. Technical report, SCIEnce Consortium (2009)
Horn, P., Roozemond, D.: The Popcorn OpenMath representation, version 1.0. Technical report, SCIEnce EU Project (2009)
Horn, P., Roozemond, D.: WUPSI universal Popcorn SCSCP interface, version 1.0. Technical report, SCIEnce EU Project (2009)
Jolly, R., Kredel, H.: How to turn a scripting language into a domain specific language for computer algebra. Technical report (2008), http://arXiv.org/abs/0811.1061
Jolly, R., Kredel, H.: Symbolic script programming for Java. Technical report (2009), http://arXiv.org/abs/0906.2315
Kredel, H.: On the Design of a Java Computer Algebra System. In: Proc. PPPJ 2006, pp. 143–152. University of Mannheim (2006)
Kredel, H.: Evaluation of a Java Computer Algebra System. In: Kapur, D. (ed.) ASCM 2007. LNCS (LNAI), vol. 5081, pp. 59–62. Springer, Heidelberg (2008)
Kredel, H.: Evaluation of a Java computer algebra system. In: Kapur, D. (ed.) ASCM 2007. LNCS (LNAI), vol. 5081, pp. 121–138. Springer, Heidelberg (2008)
Kredel, H.: Multivariate greatest common divisors in the Java Computer Algebra System. In: Proc. Automated Deduction in Geometry (ADG), pp. 41–61. East China Normal University, Shanghai (2008)
Kredel, H.: On a Java Computer Algebra System, its performance and applications. Science of Computer Programming 70(2-3), 185–207 (2008)
Kredel, H.: Comprehensive Gröbner bases in a Java Computer Algebra System. In: Proceedings ASCM 2009, pp. 77–90. Kyushu University, Fukuoka (2009)
Kredel, H.: Distributed parallel Gröbner bases computation. In: Proc. Workshop on Engineering Complex Distributed Systems at CISIS 2009. University of Fukuoka, Japan (2009), CD–ROM
Kredel, H.: Distributed hybrid Gröbner bases computation. In: Proc. Workshop on Engineering Complex Distributed Systems at CISIS 2010. University of Krakow, Poland (2010), CD–ROM
Kredel, H.: The Java algebra system (JAS). Technical report (since 2000), http://krum.rz.uni-mannheim.de/jas/
Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer Academic Publishers, Dordrecht (1993)
Kramer, A.C.: Symja a symbolic math system written in Java based on the MathEclipse libraries. Technical report (since 2009), http://code.google.com/p/symja/ (accessed January 2010)
Android Scripting Developers: Android Scripting brings scripting languages to android. Technical report (2009), http://code.google.com/p/android-scripting/ (accessed June 2010)
Apache Software Foundation: Commons-Math: The Jakarta mathematics library. Technical report (2003-2010), http://commons.apache.org/ (accessed November 2009)
Keilhauer, A., Levy, S.D., Lochbihler, A., Ökmen, S., Thimm, G.L., Würzebesser, C.: JLinAlg: a Java-library for linear algebra without rounding errors. Technical report (2003-2010), http://jlinalg.sourceforge.net/ (accessed January 2010)
Sun Microsystems, Inc.: JSR 223: Scripting for the Java platform. Technical report (2003-2006), http://scripting.dev.java.net/ (accessed November 2009)
ABCL Developers: Armed bear common lisp (ABCL) - common lisp on the JVM. Technical report (2003-2010), http://common-lisp.net/project/armedbear/ (accessed January 2010)
Reduce Developers: REDUCE interactive system for general algebraic computations. Technical report (1968-2010), http://www.reduce-algebra.com/ (accessed January 2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kredel, H., Jolly, R. (2010). Generic, Type-Safe and Object Oriented Computer Algebra Software. In: Gerdt, V.P., Koepf, W., Mayr, E.W., Vorozhtsov, E.V. (eds) Computer Algebra in Scientific Computing. CASC 2010. Lecture Notes in Computer Science, vol 6244. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15274-0_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-15274-0_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15273-3
Online ISBN: 978-3-642-15274-0
eBook Packages: Computer ScienceComputer Science (R0)