Cтраница 2
Ситуация ENDPAGE возникает при попытке печати за последней строкой на странице. Стандартная реакция системы - начинается новая страница. [16]
Ситуация NAME возникает, если при вводе появляется нераспознаваемый идентификатор или имя, отсутствующее в списке данных. Стандартная реакция системы - сигнализация, игнорируется присваивание для отсутствующего имени. [17]
Ситуация STRINORANGE возникает, если при обращении к встроенной функции с идентификатором SUBSTR допущена ошибка в длине списка аргументов. Стандартная реакция системы - сигнализация, длина списка преобразуется в допустимые границы, программа продолжает выполняться. [18]
Оператор ON в отличие от префикс-ситуации не может отменять контроля за выполнением ситуаций. Он может только заменить стандартную реакцию системы указанной программистом. С помощью префикс-ситуаций контроль системы можно отключать, что сокращает время выполнения программы. [19]
Если оператор задай, то он выполняется всякий раз при возникновении указанной ситуации. Если записано слово SYSTEM, то имеет место стандартная реакция системы. [20]
Префикс-ситуация позволяет включить или исключить любую вычислительную ситуацию. Для включенной ситуации выполняется прерывание программы с вызовом стандартной реакции системы. Если ситуация выключена, то при ее возникновении делается попытка продолжить выполнение программы. [21]
Перед каждым оператором DD ( чтобы их могла различить ОС ЕС) через точку помещается имя пункта задания, которое уже есть в каталогизированной процедуре, например PL1LSYSIN или GO. В нашем примере отсутствуют параметры оператора ЯУЗ, так как подразумевается стандартная реакция системы. [22]
Набор средств для трассировки предоставляет альтернативную структуру вызовов подпрограмм, основанную на прерываниях. Выполнение инструкции может быть прервано по одному из шести условий: изменение значения указанной переменной; переход на указанную метку; вызов, возврат или вызов и возврат из указанной подпрограммы; изменение значений определенных ключевых слов. Для каждого типа прерывания программист может1 определить подпрограмму, которую нужно выполнять всякий раз, когда происходит это прерывание; можно также воспользоваться стандартной реакцией системы по умолчанию. Эта структура прерываний наиболее полезна для трассировки при отладке программы, но ее можно с успехом применять и в других ситуациях. Например, можно прервать операцию сопоставления с образцом и выполнить какую-либо определенную программистом подпрограмму; для этого нужно установить прерывание при условном или немедленном присваивании значения какой-либо переменной внутри образца. [23]
ПЛ / 1 располагает гибкими средствами управления прерываниями и обработки прерываний. В языке определены состояния прерываний - исключительные состояния. Каждое состояние имеет собственное имя. Состояние может быть включено или выключено. Если исключительное состояние включено, то при его возникновении происходит прерывание выполнения программы, которое должно быть обработано. Если состояние выключено, то его возникновение не приводит к прерыванию, однако результат выполнения программы может оказаться неверным. Обработка прерывания производится либо стандартным образом ( стандартная реакция системы), либо так, как это предусмотрел пользователь в своей программе. Если при этом включено состояние деление на нуль, то происходит прерывание. Если рассматриваемое состояние выключено, то прерывание не происходит и сообщение не печатается. Деление на нуль не производится, А принимает значение 12, и выполнение программы продолжается. [24]