【发布时间】:2017-02-23 21:23:39
【问题描述】:
为什么 Forth 实现 rot 操作符,为什么它恰好对栈顶的三个项目进行操作?
仅仅是为了方便还是没有这样的指令,Forth 就不是图灵完备的?三的数目是图灵完备的最小可行选项吗?
我可以想象可以用pick 或roll 来实现rot。那么如果这三个操作都没有,那它仍然是图灵完备的吗?
【问题讨论】:
-
它是一种原始的基于堆栈的语言,必须将堆栈顶部的值打乱以完成工作是一种非常普遍的需求。它有很多词汇:dup、?dup、drop、swap、over、nip、tuck、rot、-rot、Sure、convenience。
-
@HansPassant 请看编辑,还是为了方便?
-
许多处理器都实现了它。用语言提供它是有意义的。我在 1970 年代使用了一种具有 IMP 运算符的语言。
标签: computation-theory formal-languages computation forth stack-based