标签: turing-complete

什么可以awk做那个sed不能?

我使用sed作为批处理ptovess,我用awk无法做到这一点.vould awk已经做到了吗?或者它是一个选择问题,并调用awk和sed等效的用法.它们都使用与i/o类似的常见搜索替换.是否有一个很好的例子,另一个可以用一个不能做的事情?

awk sed turing-complete

5
推荐指数
2
解决办法
1820
查看次数

我的编程语言中的quine怎么样?

我已经创建了一个图灵完整的编程语言(已经过验证),因此必须可以为它编写一个quine,对吧?

但是我所知道的所有quines都将它们的源代码存储在一个字符串中,然后使用chr和之类的东西替换它中的特殊字符ord.

我的语言只有以下内容

  • 基本的算术
  • Int和字符串类型
  • 变量
  • ==运算符
  • 有条件的

我不知道如何写一个quine,因为我没有真正的字符串操作可用,我只能输出常量字符串.然而,它是100%图灵完成.

quine turing-complete

5
推荐指数
1
解决办法
740
查看次数

Stata图灵完成了吗?

我最近一直在和Stata做一些统计工作而不是非常享受.

我不觉得它是一种"适当的"编程语言:特别是我认为在满足条件之前有一种循环方式.

我的感觉是对的,还是Stata真的图灵完整?

loops turing-complete stata

5
推荐指数
1
解决办法
1450
查看次数

Scala 3不会图灵完整吗?

我参加了Martin Odersky关于Scala未来的主题演讲:

https://skillsmatter.com/skillscasts/8866-from-dot-to-dotty

在1:01:00,对观众问题的回答似乎表明未来的Scala将不会是图灵完整的.

我理解正确吗?Scala 3将不再是图灵完整吗?如果是这样,对于像我这样每天在工作中使用Scala解决实际问题的人会产生什么样的实际影响呢?换句话说,工业Scala程序员松散了什么,他们通过删除图灵完整性获得了什么?

scala turing-complete dotty

5
推荐指数
2
解决办法
827
查看次数

无法在C中添加自然数的后果

在System FI中,可以使用Church数字定义真正的总加法函数.

在Haskell中,由于底值,我无法定义该函数.例如,在haskell中,如果x + y = x,那么我不能说y为零 - 如果x是底部,x + y = x表示任何y.因此,加法不是真正的加法,而是对它的近似.

在CI中无法定义该函数,因为C规范要求所有内容都具有有限的大小.所以在C中,可能的近似值甚至比Haskell更差.

所以我们有:

在系统F中,可以定义添加,但不可能有完整的实现(因为没有无限的硬件).

在Haskell中,不可能定义添加(因为底部),并且不可能有完整的实现.

在C中,不可能定义总加法函数(因为所有内容的语义都是有界的),但是可以实现兼容的实现.

因此,所有3个正式系统(Haskell,System F和C)似乎都有不同的设计权衡.

那么选择一个而不是另一个的后果是什么?

haskell types language-design turing-complete

4
推荐指数
1
解决办法
421
查看次数

VHDL图灵是否完整?

VHDL图灵是否完整?我的理解是VHDL创建了一个寄存器机器,并且注册机器 - 没有任意RAM - 不是图灵完整的.

这准确吗?对于在寄存器机器中无法解决的问题,是否有标准方法 - 使用VHDL外部的RAM,并通过VHDL管理它?

theory programming-languages vhdl turing-complete

4
推荐指数
2
解决办法
1612
查看次数

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

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

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)
Run Code Online (Sandbox Code Playgroud)

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

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


编辑:通过添加ROTATE命令(将堆栈的前三个值从 更改A B CB C A)并消除DUPLICATEPLUSSWAP命令,可以实现规则 110 元胞自动机的 3 个字符版本。这足以证明图灵完整性吗?

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

stack programming-languages turing-complete

4
推荐指数
1
解决办法
1720
查看次数


Brainfuck与1位存储单元?

编程语言Brainfuck的实现,如果其存储单元的容量为1位,而不是通常的8位,仍然可以完成吗?

+和 - 指令变得相同,但这不一定是个问题.

我认为没有问题,例如4位存储器单元,但如果它一直扩展到单个位值,我就无法解决.

binary esoteric-languages turing-complete brainfuck

3
推荐指数
1
解决办法
301
查看次数

任何额外的公理可以使 Coq Turing 完整吗?

这里我的意思是公理是我们可以用AxiomCoq Gallina 中的关键字定义的东西,而不是传递给 Coq 的命令行参数。

我知道一些公理使 Coq 不一致。然而,AFAIK 他们并没有使 Coq Turing 完整。以我的粗略理解,这是因为它们不提供任何额外的计算行为。

有没有一种可以使 Coq 转动完成的?如果没有,您能否更具体地解释为什么不可能?

type-theory termination turing-complete coq totality

3
推荐指数
1
解决办法
70
查看次数