Connection Technologies Products
-----
 /
Connection Technologies
*Prebuilt Connections
<MathLink
*Java Toolkit: J/Link
*.NET/Link
*Web Services Package
*Wolfram Workbench
*Download Developer Kit
*MathLink License Agreement
*References and Support
*GUIKit
*DatabaseLink
*Ask about this page
*Print this page
*Email this page
*Give us feedback
*
Sign up for our newsletter:

MathLink

MathLink is a general and flexible interface for external programs to communicate with Mathematica. MathLink has been carefully designed as a fundamental component of Mathematica--tightly integrated and consistent with Mathematica's design goals.

Many Ways to Connect
MathLink supports client-server configurations allowing Mathematica to be either the client or the server. MathLink also allows peer-to-peer communication.

Mathematica can use MathLink to access external resources, which might provide specialized computations or services available in legacy code or existing libraries. For some languages a template mechanism is provided that defines an appropriate interface. For other languages such functionality is not necessary.

MathLink also allows Mathematica to be embedded in other applications. These applications can call Mathematica for high-level numeric and symbolic solvers. In addition, the applications can also use the powerful tools in Mathematica to generate and render graphical and mathematical objects.


Single and Network Computer Support
MathLink can be used by Mathematica to communicate with other programs that run on the same computer. MathLink can also be used to communicate with other computers. Even if the computers have different architectures or operating systems, MathLink ensures the integrity of data that is transmitted. MathLink is efficient and will send data in a binary format when the computers are sufficiently compatible.

Transport Independence
MathLink is independent of the transport medium and supports a number of different transport mechanisms that have different properties. In addition, MathLink can transmit out-of-band data such as exceptions.

Uses of MathLink
Mathematica makes extensive use of MathLink technology. For example, the technology is used to provide communication between the two components of Mathematica--the computational engine (the kernel) and the notebook interface. The extensive use that Mathematica makes of MathLink is a strong endorsement of this powerful technology. Using MathLink allows a Mathematica notebook interface to run the kernel on a different computer, for example, a powerful server machine. Another possibility is connecting a notebook interface to many kernels, each of which can work on part of a computation.

MathLink provides the tools for many application packages that extend the capabilities of Mathematica and embed Mathematica in other applications. For example, Mathematica Link for Excel provides users of Excel more computational power and an alternative to the Excel macro language. Parallel Computing Toolkit allows parallel programming over a network of heterogeneous machines. These and others are all made possible by MathLink technology.

Language Support
MathLink provides support for connecting the Mathematica kernel to your C or C++ programs. A C/C++ MathLink Software Developer Kit (SDK) ships with every version of Mathematica, and many tutorials and examples are available. In addition, many unsupported examples of using MathLink with Fortran, Perl, and Visual Basic are also available. J/Link, a toolkit that integrates Mathematica and Java, is available.

Licensing and Availability
All versions of Mathematica are MathLink enabled and can work with any MathLink application.

A simple and flexible license agreement that allows the construction and distribution of applications ranging from free examples to sophisticated commercial products is available on this site.

Any questions about topics on this page? Click here to get an individual response.


 © 2008 Wolfram Research, Inc.  Terms of Use  Privacy Policy