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

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

Как уже отмечалось (см. § 3.5), оперирование с исключительными си­туациями можно рассматривать как один из вариантов программирования в событийноориентированном стиле. Здесь события — возникновение си­туаций, для которых планируется реакция. Если таких событий много, а основной процесс, для которого следует запрограммировать реакцию на ис­ключения, логически не очень сложен, то использование средств поддержки оперирования с исключительными ситуациями является реализацией стиля программирования от событий. Как и в общем случае, здесь возникает во­прос о том, с какими событиямиисключениями можно иметь дело, какими способами возбуждается реакция на исключения.

Есть еще одна методическая трудность работы с исключениями: что де­лать после отработки реакции? Как правило (и это зафиксировано в при­веденном выше описании действий абстрактного вычислителя), реакция заканчивается завершением блока, который определяет область действия ситуации (конструкция try). Если не считать тривиального (и совершенно негибкого) прекращения вычислений программы после отработки реакции, то принципиально возможны еще два решения: возврат в точку выполнения, в которой произошел вызов реакции (это трактуется как исправление ошиб­ки при выполнении реакции), и завершение блока, в котором определено предписание о реагировании на ситуацию (это трактуется как невозмож­ность исправления ошибки и, как следствие, невозможность выполнения указанного блока). Второе решение легко моделируется с помощью описан­ного выше механизма. Что касается трактовки исключения как исправления ошибки, то, хотя иногда она и удобна (например, в задаче синтаксического анализа), она пытается поднять исключение до уровня того, что в системе сентенциального программирования Prologназываетсяbacktracking.Такой вид возвратов исключительно плохо совместим со структурным программи­рованием, да и с другими стилями, кроме сентенциального, и поэтому такой трактовки исключения стараются избегать. Заметим, что указанный нами частный случай синтаксического анализа как раз и относится к числу задач, где естественней всего сентенциальное программирование.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама