1.3.1 Mathematica 的结构Mathematica 系统的基本部分 Mathematica 是模块化系统,其执行运算的内核 (kernel) 与处理用户交互的 前端 (front end) 是互相分离的. Mathematica 前端是称作笔记本的交互文档,笔记本把具有文字、图形、面板 和其它材质的输入和输出放在一起. 用户使用笔记本既可进行运算, 也可作为表达或发布自己的结果的工具. Mathematica 的常见界面种类 笔记本前端包含许多菜单和图形工具,用以创建和阅读笔记本文档,向内核发送 材料和从内核接收材料. 把文本、图形和输入输出混合放在一起的笔记本
 
在某些情况下,用户可能不需要笔记本前端的混合功能,而想代之以和内核交互. 这可通过使用文本界面来实现,在文本界面,从键盘键入的文字直接进入内核.
使用文本界面与 Mathematica 对话
In[1]:= 2^100
Out[1]= 1267650600228229401496703205376
In[2]:= Integrate[1/(x^3 - 1), x]
1 + 2 x ArcTan[-------] 2 Sqrt[3] Log[-1 + x] Log[1 + x + x ] Out[2]= -(---------------) + ----------- - --------------- Sqrt[3] 3 6
Mathematica 的一个重要特点是它不仅能与人交互,还能和其它程序交互. 这个功能是通过 MathLink 来实现的. MathLink 是外部程序和 Mathematica 内核 之间的标准双向通讯协议.
通过 MathLink 与 Mathematica 内核通讯的 C 程序代码的一部分
MLPutFunction(stdlink, "EvaluatePacket", 1);
MLPutFunction(stdlink, "Gamma", 2); MLPutReal(stdlink, 2); MLPutInteger(stdlink, n);
MLEndPacket(stdlink); MLCheckFunction(stdlink, "ReturnPacket", &n);
MLGetReal(stdlink, &result);
在许多兼容 MathLink 的程序中,一些被用来作为 Mathematica 前端.这些前端常常提供自己特有的用户界面,并把 Mathematica 内核纯粹作为嵌入的计算引擎.以这种方式使用 Mathematica,在本节最后有 一些讨论.
|