Если грамматика неоднозначна, то для каждой формы предложения существует ровно один дескриптор. - PullRequest
1 голос
/ 14 ноября 2010

может быть два производства, из которых мы можем сделать сокращение.После предоставления приоритета и связей, как требуется, будет только один дескриптор. Так ли это утверждение верно ??

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Если у вас есть грамматика, которая имеет неоднозначные правила, вы получите несколько толкований.Вам не нужно настаивать на том, что грамматика устраняет двусмысленность;Вы можете просто согласиться с тем, что что-то неоднозначно, и проанализировать его несколькими способами:

fruit flies like an arrow.

Результат анализа - множественные интерпретации.

Теперь, чтобы такой язык был полезным читателю, либо он должен быть доволен двусмысленностью, либо вы должны дать ему способ ее разрешить.(В этом примере я решил для вас, что вы рады двусмысленности, потому что я не дал вам способа ее решить!).Или можно дать читателю что-то с неоднозначным анализом, способом выбрать, какой анализ имеет смысл, и он отвергает неуместные синтаксические анализы.

Я могу сделать это для приведенного выше случая, сказав вам, что я имею в виду "fruit => watermelon ".

Компьютерные грамматики не отличаются, но большинству программистов не нужен неоднозначный код.Так что, в общем, разработчики языка любят для определения однозначных грамматик.На практике они не достигают успеха, и вы получаете забавные правила языка, такие как «Если это можно интерпретировать неоднозначно, то интерпретируйте это этим способом».

1 голос
/ 14 ноября 2010

Это частично верно, конфликт уменьшения / уменьшения обычно разрешается путем указания приоритета или разрешения сборщику синтаксического анализатора выбирать, какое правило применять раньше другого.

Это означает, что конфликт разрешен, но не такпарсер будет вести себя точно так, как задумано.Удобно изучить, что вызывает конфликт, и подумать, нужен ли рефакторинг грамматики для выражения того, что вы пытаетесь проанализировать, или достаточно автоматического выбора / приоритета.

...