关于内部实现的一些注释

引言
有关 Wolfram 语言内部实现的一般讨论在 "Wolfram 系统的内部" 一节给出. 这里给出的是特殊特征的简短注释.
需要强调的是,这些注释给出的只是所用到的基本方法和算法的大致描述. 实际的实现通常涉及其它许多要素.
举例来说,注释仅简单的说 DSolve 使用Kovacic 算法求解二阶线性微分方程. 但是用于实现这一功能的内部代码却有60多页长,包含了大量其它算法和大量精妙的思想.
数据结构和内存管理
一个 Wolfram 语言表达式在内部是由一组邻接的指针构成,第一个指针指向头部,其余指针指向它的后续元素.
每一个表达式包含一个特殊形式的哈希代码,这个代码用在模式匹配和计算中.
对每个符号来说,则存在一个重要的符号表入口,用于记录该符号的所有信息.
大部分的原始对象,如串和数,被单独分配;而计算中生成的小整数和特定近似数的唯一副本却一直保留.
由 Wolfram 语言使用的每一块内存保留了一个记载它被调用的次数的记录. 当这个记录为0时,内存自动释放.
表达式中元素的连续存放减少了内存的分块和交换. 但是,当一个长表达式中一个单独的元素被修改时,这可能导致对指针数组全部复制. 为了避免这种复制,Wolfram 语言使用了许多基于调用次数和预分配的优化技术.
在适当的场合,大的数列和嵌套数列自动以机器整数或实数的打包数组存放. Wolfram 语言译器自动被用来编译将要重复用到这种打包数组上的复杂函数. Wolfram Symbolic Transfer Protocol (WSTP)、DumpSave 及各种 ImportExport 格式在外部使用打包数组.
基本的系统特性
Wolfram 语言实质上是一个解释程序,它通过调用由头的符号表入口指向的内部代码扫描它遇到的表达式.
任何变换法则 无论是以 x->y 的形式还是在一个定义中给出 都自动编译成允许快速模式匹配的一种形式. 许多不同类型的模式通过特殊代码加以区分和处理.
考虑到空白和模式的其它特征,在模式匹配中使用了一个哈希表.
与模式匹配有关的内部代码约有250页.
字符串的模式的执行是通过使用一个 PCRE 正则表达式库的符号扩展实现.
当大量的定义用于描述一特定符号时,会自动使用 Dispatch 格式生成一个哈希表,以便能迅速找到合适的法则.
数值及相关函数

数的表示和数值计算

基本算法

伪随机数

数论函数

复合函数

初等超越函数

数学常数

特殊函数

数值积分

数值的和与乘积

数值微分方程

近似方程求解和优化

数据处理

近似数值线性代数

准确数值线性代数

代数和微积分

多项式处理

符号线性代数

准确方程求解与化简

准确优化

化简

微分和积分

微分方程

和与乘积

级数和极限

递归方程

输出和接口

图形

可视化

前端

笔记本

动态计算

WSTP

表达式的标准化