上下文敏感和图灵完备的正式语言

时间:2014-04-23 18:14:32

标签: formal-languages context-sensitive-grammar

你知道吗,哪些可以指定上下文敏感的语法?例如*符号指针/乘法模糊度解析。我正在寻找能够解决这些含糊之处的正式语言。我正在寻找的语言应该明确规定。

编辑:我正在寻找像BNF这样的东西,但应该是上下文敏感的,实际上它应该能够解决Dangling else问题。

1 个答案:

答案 0 :(得分:3)

BNF可以通过引入其他规则来解决此类歧义。例如,在Java language spec中找到:

IfThenStatement:
  if ( Expression ) Statement
IfThenElseStatement:
  if ( Expression ) StatementNoShortIf else Statement
StatementNoShortIf:
  IfThenElseStatementNoShortIf
  ...
IfThenElseStatementNoShortIf:
  if ( Expression ) StatementNoShortIf else StatementNoShortIf

...其中StatementNoShortIfStatement,不能以没有'else'的'if'结尾。因此,如果我正在解析if(a) if(b) c(); else d();,那么唯一的选择就是让if(b) c(); else d();绑定到StatementNoShortIf