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

The Structure of Mathematica

Mathematica is a modular software system in which the kernel which actually performs computations is separate from the front end which handles interaction with the user.
Mathematica kernelthe part that actually performs computations
Mathematica front endthe part that handles interaction with the user

The basic parts of the Mathematica system.

Such a design has many advantages over a monolithic system. For instance, the Mathematica front end could be run on a local computer with enhanced graphics capabilities while the Mathematica kernel might be run on a faster remote computer. Or, multiple kernels could be run from a single front end.
The most common way to work on Mathematica is to use interactive documents known as notebooks. Notebooks mix Mathematica input and output with text, graphics, palettes and other material. You can use notebooks either for doing ongoing computations, or as a means of presenting or publishing your results.
Other common Mathematica interfaces include the text-based interface and the MathLink interface.
Notebook interfaceinteractive documents
Text-based interfacetext from the keyboard
MathLink interfacecommunication with other programs

Common kinds of interfaces to Mathematica.

An important aspect of Mathematica is that it can interact not only with human users but also with other programs. This is achieved primarily through MathLink, which is a standardized protocol for two-way communication between external programs and the Mathematica kernel.
Among the many MathLink-compatible programs that are now available, some are set up to serve as complete front ends to Mathematica. Often such front ends provide their own special user interfaces, and treat the Mathematica kernel purely as an embedded computational engine.