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

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

Выбрать вход в таблицу, соответствующий значениюEntry(текущее состояние).

Если Условие отсутствует, то перейти к шагу 4.

Вычислить совместно все Условия срабатывания переходов (клетки второй колонки для данного входа):

(а) Если среди результатов есть значенияTrue, то

выбрать одну из строк, Условие которой истинно, и перейти к шагу 4 для выбранной строки;

Если все значения Условий ложны и есть строкаfailure, то выбрать эту строку

перейти к шагу4для нее;

Если все значения Условий ложны и нет строкиfailure, то завершить вычисления автомата.

Выполнить Действие.

В качестве значения переменнойEntryустановить наименование со­стоянияпреемника (из четвертой колонки таблицы)

Перейти к шагу 1.

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

start — указание действий, которые выполняются до основных дей­ствий и проверок условий перехода (может использоваться в качестве первой графы таблицы),

finish — указание действий, которые выполняются после основных действий и проверок, но до перехода (может использоваться в качестве последней графы таблицы);

Можно также определять локальные для состояний данные (в примере та­кие данные определены только для начального состояния), но это должно быть согласовано с правилами локализации имен языка программирования и с общим стилем, в котором написана программа. Заметим, что локальные данные всех состояний конечного автомата должны быть помещены в общий контекст, а приписывание их к конкретным состояниям является ограниче­нием видимости, подобным тому, о котором говорилось при рассмотрении модулей в § 12.2 (еще раз прослеживается аналогия между модулями и состояниями!). Это прагматически следует из того положения, что работа конечного автомата не требует привлечения памяти.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама