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

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

Что касается полей действий, то их представление для большинства язы­ков программирования плохо разработано. Данное обстоятельство являет­ся препятствием к использованию программирования от состояний: коди­рование действий усложняет обработку. Но если в языке можно задавать подпрограммы как данные, то описание структуры таблицы, которое бу­дет согласовано с дальнейшей трансляцией или интерпретацией, возможно. Обсуждение проблем одновременной интерпретации полей данных и полей действий будет продолжено в контексте произвольной разметки текстов (без привязки к данному представлению таблицы).

Пусть тип T_StructTableLineописывает структуру одной строки таблицы, а вся таблица представлена в виде массива Tableтаких структур. Пусть далее iSt — переменная, используемая для индексирования массива Table, некоторые из ее значений представляют состояния конечного автомата (но не все, а только те, к которым определен переход!). Наконец, пусть

— обработчик строки (ее интерпретатор или транслятор), 'понимающий' структуру T_StructTableLine, который специфицируется как функция, при выполнении которой должно быть определено очередное значение iSt. Когда значение iStне указывает ни на какую строку таблицы, это служит сигналом для завершения обработки (при желании можно заняться кодированием того, как завершилась обработка с помощью задания различных таких значений).

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

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

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама