批量转换是否完成?

我无法find是否是非常好奇,如果它不合格,它缺乏资格的function? 我已经做了一个相当数量的批次,并没有看到任何明显的能力滑倒。

Solutions Collecting From Web of "批量转换是否完成?"

我相信它符合资格。 图灵完备性的基本要求被认为可以简化为几个简单的操作,包括:存储状态(变量)的能力,分支能力(条件)以及迭代能力(循环)。 批处理具有所有这些,所以除非对图灵完备性有一些尚未发现的要求,否则批处理脚本是合格的。

我已经证明批量是完整的,通过批量创建一个brainfuck解释器(因为brainfuck被证明是图灵完成):

https://github.com/YoYoYonnY/Brainfuck-In-Batch

顺便说一下,图灵完整的编程语言是指:

  • 不可能创建一个程序来确定另一个程序(使用同一种语言)是否最终会停止或将会一直运行(我不知道这个程序是如何工作的,我不认为有人用这个来证明图灵完整性)。
  • 可能创建一个程序,可以运行所有可能的程序语言(解释: Brainfuck Brainfuck解释器 (有一个更好的版本,我不幸找不到,这是非常缓慢))
  • 可能像图灵机一样起作用,因此至少包含以下几个方面:
    • 写入内存(即将变量值更改为任何其他值;只能将其更改为false ,反之亦然;对于batch: SET A=5
    • “无限”内存(也就是说,我可以写多于一个位/字节,最好是无限多)。只要我们可以写入整个对象,字符串,数组,表格,位域甚至只是整数都是有效的。请注意,必须能够通过地址读取和写入变量:如果您希望整数有效,则必须存在位移,并且您必须能够对数组进行索引,例如array[index];
    • 条件跳转语句(即IF %A%==0 GOTO LABEL (如果A为零则跳转到标签), while (var) {/*code*/} (当var不为零时跳回到代码开始处)或jmp0 exit; (如果堆栈上的当前值为零,跳转到退出))

传统的图灵机要求你在两边都有一个无限的磁带,但是一个简单的数组,字符串,表格(对象)或者二进制数字(bitfield)也可以工作。 在我的“Brainfuck在批处理”例如我用一个数组/表类似的对象来存储内存(因为批量允许你改变一个值的关键,如下所示: SET ARRAY[%KEY%]=%VALUE%