Непейвода Н.Н. Программирование. Раздел 4

Непейвода Н.Н. Программирование. Страница 471

А можно ли с помощью данного метода убить сразу двух зайцев? Ока­зывается, это можно сделать, если вспомнить, что задача анализа вовсе не требует восстановления дерева разбора строки. Это означает, что можно анализировать входной поток в соответствии с грамматикой, которая отли­чается от заданной изначально. Но при замене грамматики должны быть выполнены два условия:

• новая грамматика должна быть эквивалентна исходной (порождает тот же язык);

• действия, которые надо выполнять после анализа и которые заданы как функции от исходной грамматики, должны быть согласованы с новой грамматикой.

Если первое условие ставит чисто формальные рамки (к тому же не очень строгие, т. к. вполне допустимо выбрать новую грамматику так, чтобы по­рождаемый язык включал исходный, и применить фильтрацию на уровне действий), то второе может вызывать затруднения. Но в нашем случае это не так. Вместо (10.3) можно воспользоваться для выражения и множителя следующими правилами:

которые, очевидно, порождают тот же язык.

В качестве второго условия в данном обсуждении используется согласо­вание грамматики с порядком вычислений. В реализующей программе это легко достигается, поскольку оперирование полностью сосредоточено в дей­ствиях каждого из автоматов (см. таблицы 10.7 и 10.8). В данном случае нет никаких противоречий в том, чтобы разработчики сами выбирали порядок действий.

В последних двух таблицах прямая рекурсия удалена. Вместо нее ис­пользованы циклы. Хорошо это или нет? Хорошо с точки зрения эффектив­ности и возможности задавать нужный порядок. Плохо, если это ведет к нарушению понимаемости. В данном случае это не так, но, вообще говоря, преобразование грамматики часто отрицательно сказывается на наглядности программы,

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама