10 likes | 91 Views
CAS is a type of software package that is used to manipulate mathematical formulae symbolically (and maybe numerically). The current market leaders are Maple and Mathematica. Both are commonly used by research mathematicians, scientists, and engineers.
E N D
CAS is a type of software package that is used to manipulate mathematical formulae symbolically (and maybe numerically). The current market leaders are Maple and Mathematica. Both are commonly used by research mathematicians, scientists, and engineers. The meaning of Evaluation in CAS and in normal programming language is different. CASes normally provide their own language, which are good at Symbolic Algebra, but not general purpose programming. However, in many cases people do need both kinds of programming at the same time, for example, GUI, web-server, multi-processing, IO and so on. Solution provided by modern CASes is C link (which also works with C++), and then Java Link (i.e., link to those hot languages). But C and Java do not support Symbolic manipulation that well. Programs will end up in two totally different worlds, and communication between the two worlds increases costs. Imagine working with people who speak a different language and having to hire a translator. Is there a way through the morass? The former proposal went something like this: Write in Lisp or similar suitable language and be done with it. But nearly no one uses CAS with Lisp/Scheme nowadays. CASes that are in Lisp, such as MACSYMA, Axiom, REDUCE, YACAS, and JACAL all have two related problems: they don't have a big user group, and they don't have all the wanted CAS features. Here I have provided another solution: connect a major CAS (which has both a big user group and the necessary features) to a good Lisp implementation. The result is MrMathematica. Thanks to the common ground Mathematica and Scheme shares, the linkage is smooth - it's like an American is talking with someone British. The Marriage of Mr. Mathematica and Ms. SchemeChongkai Zhu Advised by Matthew Flatt Abstract In this poster, I argue that the programming languages provided in current mainstream Computer Algebra (a.k.a. Symbolic Algebra) Systems (CASes) are not suitable for general purpose programming, while people do need both at the same time. To address this problem, I developed MrMathematica. MrMathematica is a connection between Mathematica - one widely used CAS - and PLT-Scheme - a general purpose language that is good at nearly everything, including symbolic manipulation. It provides the ability to call between Mathematica and MzScheme. The two languages share some common ground (like Function Program and LISt Process), which makes the marriage firm.