gpt4 book ai didi

stack - 基于堆栈的语言的图灵完备性证明

转载 作者:行者123 更新时间:2023-12-02 06:06:21 25 4
gpt4 key购买 nike

我正在编写一种基于堆栈操作的笑话语言。我试图找到使其图灵完备所需的最少指令量,但不知道基于一个堆栈的语言是否可以图灵完备。这些说明足够吗?

IF (top of stack is non-zero)
WHILE (top of stack is non-zero)
PUSH [n-bit integer (where n is a natural number)]
POP
SWAP (top two values)
DUPLICATE (top value)
PLUS (adds top two values, pops them, and pushes result)

我已经查看了几个问题和答案(例如 this onethis one ),并相信上述说明已经足够了。我对么?或者我是否需要其他东西,例如函数调用、变量或另一个堆栈?

如果这些说明足够了,其中有哪些是多余的吗?

<小时/> 编辑:通过添加 ROTATE命令(将堆栈的前三个值从 A B C更改为 B C A)并消除了 DUPLICATEPLUSSWAP命令,可以实现 Rule 110 cellular automaton的3个字符版本。 。这足以证明图灵完备性吗?

如果有一个没有变量或函数的图灵完整单栈语言的示例,那就太好了。

最佳答案

如果您想证明您的语言是图灵完备的,那么您应该查看 Math StackExchange 网站上的此问答。

一种方法是看看您是否可以使用您的语言编写一个可以模拟任意图灵机的程序。如果可以,那就证明了图灵完备性。

<小时/>

如果您想知道这些指令中的任何一个是否是多余的,请查看是否可以简化您的 TM 模拟器以不使用其中一个指令。

但是如果您想知道是否可以使用更小的图灵完整语言,请查看 SKI Combinator Calculus 。可以说,存在三个指令:SKI 组合器。而且 I 显然是多余的。

关于stack - 基于堆栈的语言的图灵完备性证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44866577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com