Искать реферат        
Рефераты на 5 с плюсом
С нашим сайтом написать реферат проще простого

Программа сложной структуры с использованием меню

Категория: Компьютерные науки     версия для печати   

Страница: [1] [2] [3] [4] [5] [6] [7] [8]

- Сообщения о серьезных ошибках, при наличии которых построенный компилятором объектный код заведомо некорректен и его дальнейшее использование невозможно;

- Сообщения об ошибках, обнаружение которых привело к прекращению синтаксического контроля и построения объектного кода.

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

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

Третья форма статического контроля - контроль правдоподобия программы, то есть выявление в ее тексте конструкций, которые хотя и синтаксически корректны, но скорее всего содержат ошибку или свидетельствуют о ней. Основные неправдоподобные ситуации:

- Использование в программе неинициализированных переменных (т.е. переменных, не получивших начального значения);

- Наличие в программе описаний элементов, переменных, процедур, меток, файлов, в дальнейшем не используемых в ее тексте;

- Наличие в тексте программы фрагментов, никогда не выполняются;

- Наличие в тексте программы переменных, ни разу не используемых для чтения после присваивая им значений;

- Наличие в тексте программы заведомо бесконечных циклов;

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

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

4

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

упрощено при применении следующих принципов:

1) проведение этих дополнительных форм статического контроля после завершения компиляции и только для синтаксически корректных программ;

2) максимальное использование результатов компиляции программы и, в частности, информации, включаемой в листинг компилятора;

3) вместо полного синтаксического разбора текста проверяемой программы построение для нее списка идентификаторов и списка операторов с указанием всех их необходимых признаков.

При отсутствии инструментальных средств контроля правдоподобия эта фаза статического контроля также может объединяться с визуальным контролем.

Четвертой формой статического контроля программ является их верификация, то есть аналитическое доказательство их корректности.

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

надежность характеризует как программу, так и ее "окружение" (качество аппаратуры, квалификацию пользователя и т.п.);

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

Надежность можно представить совокупностью следующих характеристик:

1) целостность программного средства (способность его к защите от отказов);

2) живучесть (способность к входному контролю данных и их проверки в ходе работы);

3) завершенность (бездефектность готового программного средства, характеристика качества его тестирования);

4) работоспособность (способность программного средства к восстановлению своих возможностей поле сбоев).

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

Страница: [1] [2] [3] [4] [5] [6] [7] [8]

версия для печати

Читайте также:
Народнопесенные особенности интонации стихотворений Ивана Франко
Социальные отношения в древнерусском государстве
Введение в философию
Наблюдения над ротацизмом в украинском языке
Национально-освободительное движение в Украине в 40-50-е годы хх века: история и проблемы исторических оценок