This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

How MathLink Is Used

MathLink provides a mechanism through which programs 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 using the fundamental C data types.
The MathLink Developer Kit provides utilities for incorporating these routines into external programs. Utilities are included for a variety of languages, although here 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.