instruction operand*
,其中操作数可以是寄存器或0-127之间的数字(以及上面的所有内容都被视为寄存器),并且如果操作数对于多辅助指令缺少,则假定为“ 0”。
instruction operand*
,其中操作数可以是寄存器或0-127之间的数字(以及上面的所有内容都被视为寄存器),并且如果操作数对于多辅助指令缺少,则假定为“ 0”。
Answers:
是的,如果您以一种极具讽刺意味的方式研究此问题,并创建了一个确定性图灵机,该机器始终以某种特定语言的每个字符串停留在良好的最终状态,那么您将可以做到这一点。演示非常简单,您必须具有一个带有过渡功能且只有一个过渡的常规TM,如下所示:
TF(w,q) -> (w,Qa)
Considerations:
L = { w | w is any possible string }
w e L
q e Q
F is a set with all good final states {Qa,Qr}
Qa e F
据推测,TM具有与任何一台现实生活中的计算机相同的计算能力,因此这是绝对可能的
是的,当然有可能,这甚至很简单。
<programm> ::= char | char <program> |
我不明白谁能说“不”。也就是说,为这种语言定义有意义的语义可能相当困难,但这也是可能的。只要看看空白。
我猜这取决于有效语法的含义。
您可以设计一种语言,该语言可以接受任何字符串,但可以忽略任何未指定特定含义的内容。基本上,这相当于说“我将摆脱语法错误,但说它们不是错误” –毫无意义,出于多种原因,这是非常不希望的。
除此之外,拥有一种没有语法错误的语言的唯一方法就是让每个可能的字符串都具有与其相关的有效指令/用法。我看到的唯一方法是将所有操作都设置为单个字符,并确保为每个单个字符分配了一个操作。
有一百万个问题出在这里-显然没有保留字,这全都与它在上下文中的使用情况有关,因此,它基本上是难以辨认的,而且即使语法语法不受干扰,也很可能会遇到其他种类的问题错误。
因此,从理论上讲是可能的(AmmoQ给出的结果比I更加整洁),但完全不受欢迎。
Ahbefiasdlk aslerhsofa; f jwi [ asdfasdf ] aew /&Q!@#$} {;-P
那是什么意思呢?
只要语言具有结构和语法,就总会有语法错误的概念。问题是您是否执行它。人们会犯错误,语法错误是大多数语言设计人员所追求的,以帮助程序员避免愚蠢的错误。
语法错误是程序员编写的对语言没有意义的代码所引起的错误。
根据以上定义不可能消除语法错误。我们都弄错了标识符,我们都弄错了方法名。让语言默默接受拼写错误并乐于做任何事情,这并不是我的愉快经历。
可以设计一种可以使用任何有效的unicode字符(或字符序列)作为标识符的语言。存在挑战,例如规范化等效的字符/字符序列,以便将它们识别为同一事物,但这是可能的。注意:Unicode规范化有四种标准类型。