Справочное руководство по языку Ада-83


Классификация ошибок


Определение языка делит ошибки на несколько различных категорий:

а)

Ошибки, которые должны быть обнаружены во время компиляции любым компилятором с языка Ада.

Эти ошибки соответствуют любому нарушению правил, данных в этом стандарте, кроме нарушений, соответствующим пунктам б) и в). В частности, к этой категории относятся нарушения правил, в которых использованы слова должно, допустимо, правильный

или неправильный.

Любая содержащая такую ошибку Ада-программа не является правильной; с другой стороны, тот факт, что программа правильна в этом смысле, не означает, что в ней нет других ошибок.

б)

Ошибки, которые должны быть обнаружены во время выполнения Ада-программы.

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

в) Ошибочное выполнение.

В языке определен ряд правил, которым должна подчиняться Ада-программа, хотя от компилятора и не требуется обнаружение нарушений этих правил ни во время компиляции, ни во время выполнения программы. Слово ошибочный

квалифицирует выполнение конструкций, содержащих ошибки этой категории. Результат выполнения ошибочной конструкции непредсказуем.

г) Некорректная зависимость от порядка.

Когда в справочном руководстве указывается, что различные части данной конструкции должны быть выполнены в порядке, который не определен в языке,

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




Начало  Назад  Вперед