哪种编程语言有常规语法?

Gio*_*hal 7 programming-languages compiler-theory regular-language

我很好奇哪些(如果有的话)现实世界的编程语言都有常规语法(即所有语法正确的程序集是常规的).

另请参阅此问题:哪些编程语言不受上下文限制?.

小智 8

BrainfuckWhitespace以及类似物肯定是常规的.

另一方面,支持(parens)的任何语言都不常规,因为识别它的自动机需要堆栈.我不知道很多没有(){} []支持的语言除了汇编之外还会做更多的事情.

只有现实世界的例子才会出现并且可能是常规的Forth.

  • Brainfuck 不是常规语言,因为它允许嵌套循环,其中“[”标记循环的开始,“]”标记循环的结束。由于这些必须匹配,所以 Brainfuck 并不常见。 (3认同)
  • @KeksArmee您将翻译与实际解析混淆了。当然,您可以仅使用简单的替换操作将 Brainfuck 翻译为 C,但要真正解析正确的 Brainfuck,您需要一个至少可以处理上下文无关语法的解析器。您无法使用常规语法来表达所有语法正确的 Brainfuck 程序的集合。 (3认同)