на і подальша робота з ним швидше усього не можлива; В
3
- повідомлення про серйозні помилки, при наявності яких побудований компілятором об'єктний код явно некоректний і його подальше використання неможливо;
- повідомлення про помилки, виявлення яких привело до припинення синтаксичного контролю і побудови об'єктного коду.
Однак, практично будь-який компілятор пропускає деякі види синтаксичних помилок. Місце виявлення помилки може знаходитися далеко по тексту програми від місця істинної помилки, а текст повідомлення компілятора може не вказувати на істинну причину помилки. Одна синтаксична помилка може спричинити генерацію компілятором декількох повідомлень про помилки (Наприклад, помилка в описі змінної приводить до появи повідомлення про помилку в кожному операторі програми, що використовує цю змінну). p> Другою формою синтаксичного контролю може бути контроль структурованості програм, тобто перевірка виконання угод і обмежень структурного програмування. Прикладом подібної перевірки може бути виявлення в тексті програми ситуацій, коли цикл утвориться за допомогою оператора безумовного переходу (використання оператора GOTO для переходу вгору по тексту програми). Для проведення контролю структурованості можуть бути створені спеціальні інструментальні засоби, а при їх відсутності ця форма статичного контролю може поєднуватися з візуальним контролем.
Третя форма статичного контролю - контроль правдоподібності програми, тобто виявлення в її тексті конструкцій, які хоча і синтаксично коректні, але швидше за все містять помилку або свідчать про неї. Основні неправдоподібні ситуації:
- використання в програмі неініціалізованих змінних (тобто змінних, що не набули початкового значення);
- наявність у програмі описів елементів, змінних, процедур, міток, файлів, надалі що не використовуються в її тексті;
- наявність в тексті програми фрагментів, ніколи не виконуються;
- наявність в тексті програми змінних, жодного разу не використовуються для читання після привласнюючи їм значень;
- наявність в тексті програми явно нескінченних циклів;
Навіть якщо присутність в тексті програми неправдоподібних конструкцій не приводить до її неправильної роботи, виправлення цього фрагмента підвищить ясність і ефективність програми, т. е. благотворно позначиться на її якості.
Для можливості проведення контролю правдоподібності в повному обсязі також повинні бути створені спеціальні інструментальні засоби, хоч ряд можливостей по контролю правдоподібності є в існуючих налагоджувальних і звичайних компіляторах.
4
Слід відзначити, що створення інструментальних засобів контролю структурованості і правдоподібності програм може бути істотно
спрощено при застосуванні наступних принципів:
1) проведення цих додаткових форм статичного контролю після завершення компіляції і тільки для синтаксично коректних програ...