此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

1.12.4 Mathematica 软件引擎

Mathematica 是曾经建立的很复杂的软件系统之一.它的源代码用 C 语言 和 Mathematica 的组合写成.对第4版,关于内核的代码由大约由 650,000 行 C 代码和 130,000 行 Mathematica 语句组成. 这个粗略地相应于18 兆字节的 数据或 18,000 页打印的文字.
Mathematica 中的 C 代码实际上是用支持一定的内存管理和面向对象 特征的扩展 C 语言写成的. Mathematica 代码使用 ShareDumpSave 进 行了优化.
Mathematica 内核中不同部分的代码的分解大致如下:语言和交流占 30%; 数值计算占 25%;代数计算占 25%;图形与内核输出占 20%.
大多数代码是相当密集的和系统化的:实际上是简单过程或表的那些部分 使用最少的代码,这是因为代码趋向于较高的层次--常常直接在 Mathematica 中被写出.
内核中的源代码对于 Mathematica 在其上运行的所有计算机系统是完全 相同的.然而对于前端,需要大量专门化的代码来支持不同类型的用户界面环境. 前端包含大约 600,000 行独立于系统的C源代码,其中大约 150,000 行涉及表达式的格式构造.有 50,000 到 100,000 行的为每个用户界面 环境定制的特殊代码.
Mathematica 使用客户--服务器计算模式. 前端和内核通过 MathLink 来连接,与外部程序通信的系统同样是 MathLink.
Mathematica 内核的C代码部分,模数和一致性通过交换完整的 Mathematica 表达式使不同部分进行通信来获得. 但是应当注意,即使系统的不同部分在源代码层次是相当独立的, 它也有许多算法的相互依赖性. 例如,使代数算法得到广泛使用的数值函数, 或者使用嵌入在不同数学函数中的相当高深的数学算法的 图形代码都是常见到的.
自从 1986 年 Mathematica 发展开始以来,直接花费在创建 Mathematica 源代码的努力是一千人ꆪꆪ年的重要部分.此外,可比较的或更大的努力已被 花费在检验和证明上.
自从第1版发行以来 Mathematica 的源代码已经有了很大改变. 在内核中的代码总行数从第 1 版的 150,000 行到第 2 版的 350,000 行,又到第 3 版的 2,600,000 行,第 4 版接近 800,000 行. 此外,在每个阶段存在已修改的代码 --以致第4版仅有很少一部分代码与第1版中的代码是相同的. 然而尽管在内部 代码中有这些变化,Mathematica 用户层次的设计一直是保持与第 1 版兼容的. 更多的功能被添加,但第 1 版中创建的程序将几乎总是不改变的运行在第 4 版中.