Денотационная семантика на продолжениях. Команда goto. | MetodPro.ru

Реклама на сайте

Денотационная семантика на продолжениях. Команда goto.


48. Денотационная семантика на продолжениях. Команда goto.
Денотационная семантика на продолжениях требуется в тех случаях, когда средств стандартной денотационной семантики не хватает. Например, это требуется в случаях обработки исключительного кода, такого как ошибки. Продолжение моделирует оставшуюся часть программы. Оно определяет смысл метки. Метка Lk означает, что выполнение начнется с команды Sk и продолжается до  конца программы. Метка обозначает продолжение. Продолжения хранятся в окружении. Продолжения можно выражать одно через другое.
Продолжение моделирует оставшуюся часть программы:
Continuation : Store -> Store
Пример блока команд, помеченных метками:
begin L1:S1;  L2:S2;  L3:S3;  L4:S4 end
Прямая семантика:
execute [S4]о execute[S3]о execute[S2]о execute[S1]
Последовательность преобразований состояний:
sto0 -> execute [S1] -> execute [S2] -> execute [S3] -> execute [S4] -> stofinal
Если S3 – команда goto L1, то последовательность преобразований будет:
sto0 -> execute [S1] -> execute [S2] -> execute [S3] -> execute [S1] -> …
Продолжения хранятся в окружении:
Метка                    Значение
L1                    cont1 = execute [S1;S2;S3;S4] env
L2                    cont2 = execute [S2;S3;S4] env
L3                    cont3 = execute [S3;S4] env
L4                     cont4 = execute [S4] env
Выполнение команды зависит от окружения:
execute : Command -> Environment ->Store -> Store
Некоторые команды могут изменять последовательность вычисления:
execute : Command -> Environment -> Continuation -> Store -> Store
Для команды – последовательности действий:
execute [C1;C2] env cont sto = execute [C1] env {execute[C2]env cont} sto
Для команды перехода:
execute [goto L] env cont sto =  applayEnv (env,L) sto



Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем