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

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

int Assignment()

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

наглядность табличных диаграмм гораздо выше, чем при прямом коди­ровании правил в методе рекурсивного спуска;

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

расширенного конечного автомата можно рассматривать как средство де­композиции задачи;

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

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

10.3.4. Преобразования грамматики, сохраняющие язык. Вычисли­тельная мощность синтаксических таблиц

Последнее замечание в перечне из предыдущего раздела заслуживает особого рассмотрения. Заметим, что леворекурсивные нетерминальные сим­волы — непреодолимое препятствие для обсуждаемого метода. Если допу­стить их, то ни при каких условиях не удастся достичь разделяемости пра­вил грамматики (см. стр. 558), а значит, не удастся сохранить соглашение о едином потоке для всех конечных автоматов системы. Именно поэтому для иллюстрации мы выбрали определение простых выражений в виде (10.2), поскольку согласованное с порядком вычислений определение (10.3) приве­ло бы к построению некорректных таблиц (к рекурсивному зацикливанию процесса анализа).

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама