1

的为什么第四实施rot运营商,以及为什么它正好运行堆栈的三个最上面的项目?必要性的“腐”操作

难道仅仅是为了方便或将第四不图灵完全没有这样的指令?图灵完成的最低可行选项是三个数字吗?

我可以想象一个人可以实现rotpickroll。所以如果没有这三个操作,它是否仍然是图灵完备?

+1

这是一个基本的基于堆栈的语言,不必四处洗牌顶级的堆栈内的值来完成这项工作是一个非常普遍的需求。所以它有很多词汇:dup,dup,drop,swap,over,nip,tuck,rot,-rot,当然,方便。 –

+0

@HansPassant请参阅编辑,是否意味着它的方便? –

+1

许多处理器都实现它。以语言提供它是有道理的。我在20世纪70年代使用过一种IMP操作符的语言。 – EJP

回答

5

本主题无关图灵完备性可言。

rot操作仅是为了方便和效率。它可以使用swap定义:

: rot (a b c -- b c a) >R SWAP R> SWAP ; 

pickroll可使用返回堆栈(这些>RR>操作),或任何其它栈中实现。

堆栈可使用存储器访问字来实现。