zbMATH — the first resource for mathematics

Generic, type-safe and object oriented computer algebra software. (English) Zbl 1290.68134
Gerdt, Vladimir P. (ed.) et al., Computer algebra in scientific computing. 12th international workshop, CASC 2010, Tsakhkadzor, Armenia, September 6–12, 2010. Proceedings. Berlin: Springer (ISBN 978-3-642-15273-3/pbk). Lecture Notes in Computer Science 6244, 162-177 (2010).
Summary: 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.
For the entire collection see [Zbl 1195.68004].
68W30 Symbolic computation and algebraic computation
Full Text: DOI
[1] Frink, A., Bauer, C., Kreckel, R.: Introduction to the GiNaC framework for symbolic computation within the C++ programming language. J. Symb. Comput. (2002) · Zbl 1017.68163
[2] Stansifer, R., Baumgartner, G.: A Proposal to Study Type Systems for Computer Algebra. Technical Report 90-07, Johannes Kepler University, Linz, Austria (1990)
[3] Jenks, R., Sutor, R. (eds.): Axiom The Scientific Computation System. Springer, Heidelberg (1992) · Zbl 0758.68010
[4] Calmet, J., Seiler, W.M.: Computer algebra and field theories. Mathematics and Computers in Simulation 45, 33–37 (1998) · Zbl 1017.68952
[5] 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)
[6] Wolfram, S.: WolframAlpha. Technical report (2009), http://www.wolframalpha.com/ (accessed January 2010)
[7] Certik, O.: SymPy Python library for symbolic mathematics. Technical report (since 2006), http://code.google.com/p/sympy/ (accessed November 2009)
[8] 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)
[9] Eclipse Developers: Eclipse rich client platform (RCP). Technical report (2008), http://www.eclipse.org/ (accessed November 2009)
[10] 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)
[11] 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) · Zbl 1344.13002
[12] Greuel, G., Pfister, G.: A Singular introduction to commutative algebra. Springer, Heidelberg (2007) · Zbl 1133.13001
[13] Stein, W.: SAGE Mathematics Software (Version 2.7). The SAGE Group (since 2005), http://www.sagemath.org (accessed November 2009)
[14] 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)
[15] 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)
[16] 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)
[17] Zippel, R.: Weyl computer algebra substrate. In: Miola, A. (ed.) DISCO 1993. LNCS, vol. 722, pp. 303–318. Springer, Heidelberg (1993)
[18] Parisse, B.: Giac/Xcas, a free computer algebra system. Technical report, University of Grenoble (2008)
[19] 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)
[20] Bernardin, L.: A Java framework for massively distributed symbolic computing. SIGSAM Bull. 33(3), 20–21 (1999)
[21] 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)
[22] Niculescu, V.: A design proposal for an object oriented algebraic library. Technical report, Studia Universitatis ”Babes-Bolyai” (2003) · Zbl 1118.68413
[23] Niculescu, V.: OOLACA: an object oriented library for abstract and computational algebra. In: OOPSLA Companion, pp. 160–161. ACM, New York (2004)
[24] 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)
[25] Platzer, A.: The Orbital library. Technical report, University of Karlsruhe (2005), http://www.functologic.com/
[26] Jolly, R.: jscl-meditor - Java symbolic computing library and mathematical editor. Technical report (since 2003), http://jscl-meditor.sourceforge.net/ (accessed November 2009)
[27] Kredel, H.: A systems perspective on A3L. In: Proc. A3L: Algorithmic Algebra and Logic 2005, pp. 141–146. University of Passau (April 2005)
[28] Focalize Developers: Focalize is a software distribution for program certification. Technical report (2005-2010), http://focalize.inria.fr/ (accessed June 2010)
[29] 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)
[30] 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) · Zbl 0921.13011
[31] 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) · Zbl 0996.68866
[32] 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)
[33] 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)
[34] 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)
[35] 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)
[36] 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) · Zbl 1166.68374
[37] 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)
[38] SCIEnce Consortium: Symbolic computation infrastructure for Europe. Technical report, SCIEnce Consortium (2009)
[39] Horn, P., Roozemond, D.: The Popcorn OpenMath representation, version 1.0. Technical report, SCIEnce EU Project (2009) · Zbl 1247.68316
[40] Horn, P., Roozemond, D.: WUPSI universal Popcorn SCSCP interface, version 1.0. Technical report, SCIEnce EU Project (2009) · Zbl 1247.68316
[41] 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
[42] Jolly, R., Kredel, H.: Symbolic script programming for Java. Technical report (2009), http://arXiv.org/abs/0906.2315
[43] Kredel, H.: On the Design of a Java Computer Algebra System. In: Proc. PPPJ 2006, pp. 143–152. University of Mannheim (2006)
[44] 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) · Zbl 1166.68377
[45] 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) · Zbl 1166.68377
[46] 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)
[47] Kredel, H.: On a Java Computer Algebra System, its performance and applications. Science of Computer Programming 70(2-3), 185–207 (2008) · Zbl 1140.68351
[48] Kredel, H.: Comprehensive Gröbner bases in a Java Computer Algebra System. In: Proceedings ASCM 2009, pp. 77–90. Kyushu University, Fukuoka (2009) · Zbl 1192.68929
[49] 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
[50] 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
[51] Kredel, H.: The Java algebra system (JAS). Technical report (since 2000), http://krum.rz.uni-mannheim.de/jas/
[52] Geddes, K.O., Czapor, S.R., Labahn, G.: Algorithms for Computer Algebra. Kluwer Academic Publishers, Dordrecht (1993) · Zbl 0805.68072
[53] 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)
[54] Android Scripting Developers: Android Scripting brings scripting languages to android. Technical report (2009), http://code.google.com/p/android-scripting/ (accessed June 2010)
[55] Apache Software Foundation: Commons-Math: The Jakarta mathematics library. Technical report (2003-2010), http://commons.apache.org/ (accessed November 2009)
[56] 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)
[57] Sun Microsystems, Inc.: JSR 223: Scripting for the Java platform. Technical report (2003-2006), http://scripting.dev.java.net/ (accessed November 2009)
[58] 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)
[59] Reduce Developers: REDUCE interactive system for general algebraic computations. Technical report (1968-2010), http://www.reduce-algebra.com/ (accessed January 2010)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.