Контекстно-зависимые и тьюринг-полные формальные языки

Знаете ли вы о каких-либо, которые могут указывать контекстно-зависимую грамматику? Например * указатель символа / разрешение неоднозначности умножения. Я ищу формальный язык, который позволит разрешить такие неясности. Язык, который я ищу, должен быть четко указан.

Редактировать: я ищу что-то вроде BNF, но должен быть контекстно-зависимым, на самом деле это должно быть в состоянии решить проблему висячей еще.

1 ответ

BNF может разрешать неопределенности такого рода, вводя дополнительные правила. Например, в спецификации языка Java вы найдете:

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

...где StatementNoShortIf это Statement это не может заканчиваться "если", которое не имеет "еще". Таким образом, если я разбираю if(a) if(b) c(); else d();тогда единственный вариант - иметь if(b) c(); else d(); связываются с StatementNoShortIf,

Другие вопросы по тегам