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

1.12.2 基本的内部结构

Mathematica 使用的内部表示法

当用户在 Mathematica 插入输入时,一个数据结构被建立在计算机的内存中来表示 已经输入的表达式.
一般地,表达式的不同部分被存贮在内存的不同地方.例如,对一个列表如 {2, x, y + z},其 "主要部分" 将被存在一个地方,而每个实际元素将被存在 不同的地方.列表的主要部分仅由三个指明计算机内存地址的指针组成. 在该地址上,形式列表元素的实际表达式能被找到.这些表达式依次包含 指向子表达式的指针.当人们达到一个目标,例如一个数或一个串(该目标 以二进制类型直接存贮在内存中),这时指针链结束.
对于 Mathematica 运算至关重要的是符号,例如 x 的表示方法.当x出现在 表达式中时,Mathematica 用一个指针代表它.但这个指针总是指向 内存中的同一个地方ꆪꆪ由Mathematica 进程定义的所有符号中心表的入口. 这个表是关于每个符号所有信息的存贮器. 它包含指向给出符号名的串的指针, 以及指向给出该符号计算规则的表达式的指针.

Mathematica 内存管理的基本原则

Mathematica 使用的每一块内存都保持着当前指向它的指针计数. 当这个计数成为零时,Mathematica 知道这块内存不再被使用,并立即使 这块内存对新的任务是可用的.
这个策略基本上保证内存不被浪费,Mathematica 使用的任何一块内存 实际上正存贮着需要进入用户的 Mathematica 进程的数据.

Mathematica 的基本行为

Mathematica 的心脏处有一个在概念上很简单的称为运算器的程序, 它取出表达式中的每一个函数并对其进行计算.
当函数是建立在 Mathematica 中的数以千计的函数中的一个时,运算器所做的事 情是直接执行 Mathematica 系统中的内部代码,这个代码被建立来执行相应于 该函数的运算.然后建立一个新的表达式来代表结果.

使 Mathematica 成为自包含系统的基本特征

Mathematica 内部函数的一个重要特征是它们支持通用运算.这意味着 在这些函数之外,用户可以构建程序进行计算机能够做的任何类型的运算. 这样,Mathematica 内部函数的一个小的子集合对支持通用运算已经 很充分了. 但具有函数的整个集合使得在实际运用中更容易构建程序. 然而,因为 Mathematica 支持通用计算,故用户决不要修改其内部函数, 执行特定任务时,用户必须做的事情是以适应的方式将这些 函数结合起来. 通用计算是所有标准计算机语言的基础.
但许多语言依赖于编译的思想. 例如,使用 C 或 Fortran,用户首先写出程序,然后编译它生成能在计 算机上实际执行的机器代码.
Mathematica 不需要用户进行编译:一旦用户输入完表达式. 表达式中的函数 能立即被执行.
Mathematica 常常对用户输入的表达式进行预处理,安排事务以便 随后的运用尽可能的有效. 但这样的预处理决不影响生成的结果,且很少 能明显地被看到.