воскресенье, 19 июня 2016 г.

Свойства. Ошибкоустойчивый

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

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

Ошибкоустойчивость важней однозначности. Для случаев ресурсоёмкой, сложной, или негарантированной диагностики ошибок в языке отдано предпочтение ловить ошибки с некоторой вероятностью, чем не ловить однозначно никогда.

Также в языке не может быть однозначной реакции на ошибки. Часть ошибок вылавливать чисто статически слишком сложно, поэтому нельзя волюнтаристски назначить такой, в остальном лучший, вариант. Гарантированный перенос отлова ошибок на время исполнения приводит к нежелательным последствиям. В первую очередь это может привести к встраиванию ошибок кода в дизайн самого кода, а также послужить уменьшению надёжности и даже общей применимости.

Отладка как неотъемлемая часть процесса разработки должна найти соответствующее отображение в языке и инструментарии. В то же время она сама не должна служить источником дополнительных ошибок.

Комментариев нет:

Отправить комментарий