我使用sed作为批处理ptovess,我用awk无法做到这一点.vould awk已经做到了吗?或者它是一个选择问题,并调用awk和sed等效的用法.它们都使用与i/o类似的常见搜索替换.是否有一个很好的例子,另一个可以用一个不能做的事情?
我已经创建了一个图灵完整的编程语言(已经过验证),因此必须可以为它编写一个quine,对吧?
但是我所知道的所有quines都将它们的源代码存储在一个字符串中,然后使用chr和之类的东西替换它中的特殊字符ord.
我的语言只有以下内容
我不知道如何写一个quine,因为我没有真正的字符串操作可用,我只能输出常量字符串.然而,它是100%图灵完成.
我最近一直在和Stata做一些统计工作而不是非常享受.
我不觉得它是一种"适当的"编程语言:特别是我认为在满足条件之前有一种循环方式.
我的感觉是对的,还是Stata真的图灵完整?
我参加了Martin Odersky关于Scala未来的主题演讲:
https://skillsmatter.com/skillscasts/8866-from-dot-to-dotty
在1:01:00,对观众问题的回答似乎表明未来的Scala将不会是图灵完整的.
我理解正确吗?Scala 3将不再是图灵完整吗?如果是这样,对于像我这样每天在工作中使用Scala解决实际问题的人会产生什么样的实际影响呢?换句话说,工业Scala程序员松散了什么,他们通过删除图灵完整性获得了什么?
在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)似乎都有不同的设计权衡.
那么选择一个而不是另一个的后果是什么?
VHDL图灵是否完整?我的理解是VHDL创建了一个寄存器机器,并且注册机器 - 没有任意RAM - 不是图灵完整的.
这准确吗?对于在寄存器机器中无法解决的问题,是否有标准方法 - 使用VHDL外部的RAM,并通过VHDL管理它?
我正在编写一种基于堆栈操作的笑话语言。我试图找到使其图灵完备所需的最少指令量,但不知道基于一个堆栈的语言是否可以图灵完备。这些说明足够吗?
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)
我已经查看了几个问题和答案(例如这个和这个),并相信上述说明已经足够了。我对么?或者我是否需要其他东西,例如函数调用、变量或另一个堆栈?
如果这些说明足够了,其中有哪些是多余的吗?
ROTATE命令(将堆栈的前三个值从 更改A B C为B C A)并消除DUPLICATE、PLUS和SWAP命令,可以实现规则 110 元胞自动机的 3 个字符版本。这足以证明图灵完整性吗?
如果有一个没有变量或函数的图灵完整单栈语言的例子那就太好了。
图灵完整性是否会妨碍语言拥有 CFG?我找不到任何论文这么说。
grammar parsing turing-machines turing-complete context-free-grammar
编程语言Brainfuck的实现,如果其存储单元的容量为1位,而不是通常的8位,仍然可以完成吗?
+和 - 指令变得相同,但这不一定是个问题.
我认为没有问题,例如4位存储器单元,但如果它一直扩展到单个位值,我就无法解决.
这里我的意思是公理是我们可以用AxiomCoq Gallina 中的关键字定义的东西,而不是传递给 Coq 的命令行参数。
我知道一些公理使 Coq 不一致。然而,AFAIK 他们并没有使 Coq Turing 完整。以我的粗略理解,这是因为它们不提供任何额外的计算行为。
有没有一种可以使 Coq 转动完成的?如果没有,您能否更具体地解释为什么不可能?