2.13.1 How MathLink Is UsedMost of this book has been concerned with how human users interact with Mathematica. MathLink provides a mechanism through which programs rather than human users can interact with Mathematica.
| • Calling functions in an external program from within Mathematica. | | • Calling Mathematica from within an external program. | | • Setting up alternative front ends to Mathematica. | | • Exchanging data between Mathematica and external programs. | | • Exchanging data between concurrent Mathematica processes. |
Some typical uses of MathLink. MathLink provides a general interface for external programs to communicate with Mathematica. Many standard software systems now have MathLink compatibility either built in or available in add-on modules. In addition, the MathLink Developer Kit bundled with most versions of Mathematica provides the tools you need to create your own MathLink-compatible programs. Once you have a MathLink-compatible program, you can transparently establish a link between it and Mathematica. The link can either be on a single computer, or it can be over a network, potentially with a different type of computer at each end.
| • Implementing inner loops in a low-level language. | | • Handling large volumes of data external to Mathematica. | | • Sending Mathematica graphics or other data for special processing. | | • Connecting to a system with an existing user interface. |
A few uses of MathLink-compatible programs. MathLink-compatible programs range from very simple to very complex. A minimal MathLink-compatible program is just a few lines long. But it is also possible to build very large and sophisticated MathLink-compatible programs. Indeed, the Mathematica notebook front end is one example of a sophisticated MathLink-compatible program.
| • MathLink is a mechanism for exchanging Mathematica expressions between programs. |
The basic idea of MathLink. Much of the power of MathLink comes from its use of Mathematica expressions. The basic idea is that MathLink provides a way to exchange Mathematica expressions between programs, and such expressions can represent absolutely any kind of data.
| • An array of numbers. | | • A collection of geometrical objects. | | • A sequence of commands. | | • A stream of text. | | • Records in a database. | | • The cells of a Mathematica notebook. |
A few examples of data represented by Mathematica expressions in MathLink. The MathLink library consists of a collection of routines that allow external programs to send and receive Mathematica expressions. The MathLink Developer Kit provides utilities for incorporating these routines into external programs. Utilities are included for a variety of languages, although in this chapter we discuss mainly the case of C. An important feature of the MathLink library is that it is completely platform independent: it can transparently use any interprogram communication mechanism that exists on your computer system.
|