版权归原作者所有,如有侵权,请联系我们

[科普中国]-堆栈结构机器

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

堆栈结构机器(英语:Stack machine),又称堆栈机器,计算机科学中一种计算模型。

简介这种类型的计算机,存储器以堆栈(Stack)存储。

这种机器,它的指令集中包含了零地址指令("0-operand" instruction set)。硬件在运行运算时,到堆栈的顶端去取出运算对象,至运算结束时,再存储到堆栈的顶端。

相较于累加器(采用 "1-operand instruction set") ,和寄存器机("2-operand instruction set" 或 "3-operand instruction set"),用零地址指令("0-operand instruction set")实现的堆栈机器,它的好处是代码密度(code density)相对较大,因此,它的程序通常较小。1

堆栈堆栈(英语:stack)又称为堆叠,是计算机科学中一种特殊的串列形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。另外堆栈也可以用一维数组或链表的形式来完成。堆栈的另外一个相对的操作方式称为队列。

由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

操作堆栈数据结构使用两种基本操作:推入(压栈,push)和弹出(弹栈,pop):

推入:将数据放入堆栈的顶端(数组形式或串列形式),堆栈顶端top指针加一。

弹出:将顶端数据数据输出(回传),堆栈顶端数据减一。

特点堆栈的基本特点:

先入后出,后入先出。

除头尾节点之外,每个元素有一个前驱,一个后继。1

累加器在中央处理器中,累加器(accumulator) 是一种寄存器,用来储存计算产生的中间结果。如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到内存,也许马上就得读回来。然而存取主存的速度是比从算术逻辑单元到有直接路径的累加器存取更慢。

标准的例子就是把一列的数字加起来。一开始累加器设定为零,每个数字依序地被加到累加器中,当所有的数字都被加入后,结果才写回到主存中。2

寄存器机在数理逻辑和理论计算机科学中,寄存器机(英语:Register machine),又译为暂存器机,是以类似于使用图灵机的方式使用的一类抽象机器。所有模型都是图灵等价的。

寄存器机得名于它有一个或多个“寄存器”——替代了图灵机的磁带和磁头,这个模型使用了多个唯一寻址的寄存器,每个都持有一个单一正整数。1

本词条内容贡献者为:

黎明 - 副教授 - 西南大学