Mathematica 9 is now available

2.5.15 高级专题:处理编译代码

Mathematica 中使用 Compile 产生的编译代码时,不需要知道它的内部形式. 然后内部代码可以用 Mathematica 表达式表示,对其进行操作有时是很有用的. 例如,可以将由 Compile 产生的代码用于外部程序和设备,也可以产生 CompileFunction 目标在 Mathematica 中运行.在这些情况下,需要了解CompileFunction 目标的内部形式. CompileFunction 目标的第一个元素总是模式集合, 它给出该目标变量的类型. CompileFunction 的第5个元素是纯函数, 在无法使用编译代码时应用该函数.

编译代码对象的结构

这里明确地给出了由 Compile 产生编译代码的形式

Out[1]//InputForm=

CompileFunction 目标中的指令流是一系列适用于简单理想化计算机的 指令组成的.该计算机对寄存器进行编号,并在这些寄存器上进行运算. 有5种基本类型的寄存器:逻辑, 整数, 实数, 复数和张量. 每一种基本 类型可以是一个单一的寄存器,也可以是任意的寄存器阵列. 计算一个 CompileFunction 目标所需的每种寄存的数目列表是该对象 的第二个元素.
在编译代码对象中的实际指令是以列表的形式给出的. 第一个元素是整 数 "opcode",它规定进行何种运算,接下来的元素是某一类型的寄存器数目, 或者是文字常数,列表中的最后一个元素是用来存放运算结果 的寄存器的数目.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.