Составители:
Рубрика:
25
Если переменная sum содержит ноль, то деление – недопустимая
операция, хотя сам оператор синтаксически правилен. Прежде, чем про-
грамма обнаружит эту ошибку, ее необходимо запустить на выполнение.
Хотя данный тип ошибок называется «ошибками периода выполне-
ния», это не означает, что ошибки находятся только после запуска про-
граммы. Вы можете выполнять программу в
уме и обнаружить ошибки
данного типа, однако, понятно, что это крайне неэффективно.
Если проанализировать все типы ошибок согласно первой классифи-
кации, то можно прийти к заключению, что при тестировании приходит-
ся иметь дело с ошибками периода выполнения, так как первые два типа
ошибок определяются на этапе кодирования.
В теоретической информатике
программные ошибки классифици-
руют по степени нарушения логики на:
• синтаксические;
• семантические;
• прагматические.
Синтаксические ошибки заключаются в нарушении правописания
или пунктуации в записи выражений, операторов и т. п., т. е. в наруше-
нии грамматических правил языка. В качестве примеров синтаксических
ошибок можно назвать:
• пропуск необходимого знака пунктуации;
•
несогласованность скобок;
• пропуск нужных скобок;
• неверное написание зарезервированных слов;
• отсутствие описания массива.
Все ошибки данного типа обнаруживаются компилятором.
Семантические ошибки заключаются в нарушении порядка опера-
торов, параметров функций и употреблении выражений. Например, па-
раметры у функции add (на языке Java) в следующем выражении указаны
в неправильном порядке:
GregorianCalendar.add(1, Calendar.MONTH).
Параметр, указывающий изменяемое поле (в примере – месяц), дол-
жен идти первым. Семантические ошибки также обнаруживаются компи-
лятором.
Надо отметить, что некоторые исследователи относят семантические
ошибки к следующей группе ошибок.
Прагматические ошибки (или логические) заключаются в непра-
вильной логике алгоритма, нарушении смысла вычислений и т. п. Они яв-
ляются самыми сложными и
крайне трудно обнаруживаются. Компилятор
может выявить только следствие прагматической ошибки (см. выше при-
мер с делением на ноль, компилятор обнаружит деление на ноль, но когда
и почему переменная sum стала равна нулю – должен найти программист).
Если переменная sum содержит ноль, то деление – недопустимая операция, хотя сам оператор синтаксически правилен. Прежде, чем про- грамма обнаружит эту ошибку, ее необходимо запустить на выполнение. Хотя данный тип ошибок называется «ошибками периода выполне- ния», это не означает, что ошибки находятся только после запуска про- граммы. Вы можете выполнять программу в уме и обнаружить ошибки данного типа, однако, понятно, что это крайне неэффективно. Если проанализировать все типы ошибок согласно первой классифи- кации, то можно прийти к заключению, что при тестировании приходит- ся иметь дело с ошибками периода выполнения, так как первые два типа ошибок определяются на этапе кодирования. В теоретической информатике программные ошибки классифици- руют по степени нарушения логики на: • синтаксические; • семантические; • прагматические. Синтаксические ошибки заключаются в нарушении правописания или пунктуации в записи выражений, операторов и т. п., т. е. в наруше- нии грамматических правил языка. В качестве примеров синтаксических ошибок можно назвать: • пропуск необходимого знака пунктуации; • несогласованность скобок; • пропуск нужных скобок; • неверное написание зарезервированных слов; • отсутствие описания массива. Все ошибки данного типа обнаруживаются компилятором. Семантические ошибки заключаются в нарушении порядка опера- торов, параметров функций и употреблении выражений. Например, па- раметры у функции add (на языке Java) в следующем выражении указаны в неправильном порядке: GregorianCalendar.add(1, Calendar.MONTH). Параметр, указывающий изменяемое поле (в примере – месяц), дол- жен идти первым. Семантические ошибки также обнаруживаются компи- лятором. Надо отметить, что некоторые исследователи относят семантические ошибки к следующей группе ошибок. Прагматические ошибки (или логические) заключаются в непра- вильной логике алгоритма, нарушении смысла вычислений и т. п. Они яв- ляются самыми сложными и крайне трудно обнаруживаются. Компилятор может выявить только следствие прагматической ошибки (см. выше при- мер с делением на ноль, компилятор обнаружит деление на ноль, но когда и почему переменная sum стала равна нулю – должен найти программист). 25
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »