Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выполнение программ_для конспекта.doc
Скачиваний:
2
Добавлен:
10.12.2018
Размер:
137.22 Кб
Скачать

Выполнение программ.

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

Интерпретатор – это программа, которая обеспечивает последовательный «перевод» инструкций программы на машинный язык с одновременным их выполнением. Поэтому при каждом запуске программы на выполнение эта процедура повторяется. Достоинством интерпретаторов является удобство отладки программы (поиска в ней ошибок), так как возможно «пошаговое» ее исполнение, а недостатком – сравнительно малая скорость выполнения.

Компилятор же переводит весь текст программы на машинный язык и сохраняет его в исполняемом файле. Затем этот уже готовый к исполнению файл можно запускать на исполнение многократно. Достоинство компиляторов – в большой скорости выполнения программы, а недостаток – трудоемкость отладки, так как невозможно пошаговое выполнение программы.

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

Понятие о тестировании и отладке.

К сожалению, объемную программу практически невозможно написать без единой ошибки. Синтаксические ошибки, выявляемые транслятором, – это наиболее очевидный и безобидный тип ошибок, так как они обнаруживаются и исправляются достаточно легко. Ошибки, связанные с неточной реализацией алгоритма или с выбором метода, не совсем подходящего для решения поставленной задачи, обычно обнаружить и исправить гораздо труднее. Например, программист написал достаточно большую программу и только в одном из условных операторов ошибочно указал знак «<» вместо «<=». При такой ошибке программа будет верно работать «почти всегда», но гарантировать правильный результат все-таки нельзя. С целью обнару-жения таких ошибок применяются тестирование и отладка программ.

Тестирование программы – это процесс ее выполнения с использо-ванием различных данных для отыскания имеющихся в программе оши-бок. Задача тестирования состоит в том, чтобы добиться неправильной работы программы. Принципы и методы тестирования обычно определя-ются назначением и структурой программы. Стандартных средств для проведения тестирования не существует. Это своего рода творчество.

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

Точка контрольного останова определяет оператор в программе, перед выполнением которого программа прервет свою работу и управление будет передано среде Delphi. Окно точек останова вызывается опцией View/ Debug windows/ Breakpoints. Установить/снять точку контрольного останова можно щелкнув мышью по служебной зоне слева от нужной строки программы или, установив в эту строку текстовый курсор, нажать F5, или в окне точек останова. Точка останова выделяется кранным цветом.

Работу программы можно прервать в любой момент с помощью кнопки «пауза» на панели инструментов, нажав Ctrl+F2 или опцией Run/ Program pause.

Наблюдать за состоянием переменной или выражения можно с помощью специального окна наблюдения, вызываемого опцией View/ Debug windows/ Watches. Можно также просмотреть в отладочном режиме текущее значение любой переменной, если навести на нее курсор мыши: значение появится в ярлычке рядом с курсором.

Трассировка программы. Перед исполнением оператора, в котором установлена точка контрольного останова, работа программы будет прервана, управление получит среда Delphi, а в окне наблюдения отразится текущее значение наблюдаемых переменных и выражений. Теперь программист может прослеживать работу программы по шагам с помощью клавиш F7 и F8 или соответствующих кнопок на панели инструментов. При нажатии F8 будут выполнены запрограммированные в текущей строке действия, и работа программы прервется перед выполнением следующей строки текста программы. Текущая прослеживаемая строка выделяется синим цветом. При нажатии F7 среда выполнит те же действия, что и при нажатии F8, но клавиша F7 позволяет прослеживать и работу вызываемых подпрограмм. После трассировки нужного фрагмента программы можно продолжить нормальную ее работу, нажав клавишу F9.

В ряде случаев бывает неудобно или невозможно пользоваться пошаговой отладкой программ (например, подпрограмма прорисовки сетки после останова не сможет нормально продолжить работу, так как будет пытаться восстановить экран). В таких ситуациях могут помочь контрольные точки останова, которые не прерывают работу программы, а лишь помещают некоторую информацию в специальный файл трассировки. Для этого в окне Run/ Add Breakpoint/ Source Breakpoint нужно убрать флажок в переключателе Break и написать сообщение в строке Logmessage. Этот протокол можно просмотреть в любой момент с помощью опции View/ Debug windows/ Event Log.