КРАТКИЕ ТЕОРЕТИЧЕСКИЕ
СВЕДЕНИЯ
Современные системы программирования (СП) Turbo-Pascal базируются на ЯВУ Pascal, который (созданный изначально для обучения системному подходу к программированию на основе концепций модульности и структурности) в настоящее время считается одним из лучших языков программирования высокого уровня независимо от назначения: от обучения основам программирования до использования в качестве эффективного инструментального средства как любителями, так и профессионалами. В освоении язык Pascal незначительно сложнее языка Basic, тогда как по средствам управления ресурсами ПК Pascal-системы в значительной мере конкурентоспособны с языками класса Ассемблер. Наиболее популярными в настоящее время являются СП Turbo-Pascal фирмы Borland и Ms Pascal; на основе первой из них и будет вестись дальнейшее изложение материала. Структурно-функциональная организация среды пакета Turbo-Pascal Рассмотрим на содержательном уровне структуру интегрированного пакета Turbo-Pascal и назначение составляющих его компонент. Обсуждение проводится относительно программного объекта – исходного модуля, представляющего собой Pascal-текст некоторой программы, находящийся в PAS-файле ASCII-формата. Программа является главным модулем и объектом в среде Turbo-Pascal, однако для обеспечения более гибкой компиляции, модульности и связи между отдельными Pascal-программами допускается использование и более мелких единиц (модулей – units). Такой модуль представляет собой часть исходного текста, которая может автономно компилироваться как единое целое. Из данных модулей можно создавать специальные библиотеки фрагментов программ и структур данных, используемых многократно. Для обеспечения интерфейса между модулями, данными и программами используются стандартные описания. При этом если программы и модули могут использовать другие модули, то сам модуль может использовать только модули. Данный принцип модульности позволяет создавать и отлаживать ПО по частям, являющимся законченными, обозримыми фрагментами какой-либо задачи. Более того, и сам пакет построен в значительной степени по модульному принципу, схематичная структура которого представлена на рис. 1.1.
Рис. 1.1. Общая структурная организация пакета Turbo-Pascal
В организации пакета можно выделить три основных уровня: ядро, оболочку системы программирования (СП) и внешнее окружение, элементы которого могут включаться в СП при инсталляции пакета. Рассмотрим несколько детальнее каждый из этих уровней. Внешнее окружение пакета включает: библиотеки модулей и программ, утилиты, автономные отладчик Turbo-Debugger и систему Turbo-Assembler, демонстрационные примеры Pascal-программ, а также документацию и Help-информацию по пакету (рис. 1.1). Библиотеки модулей (Turbo.TPL, Graph.TPU и др.) пакета включают как стандартные, так и пользовательские модули. Библиотека Turbo.TPL содержит, по крайней мере, пять обязательных модулей (System, Crt, Dos, Overlay и Printer), которые в среде СП не отличаются от пользовательских и предназначены для обеспечения дополнительных и расширенных функций по созданию Pascal-программ (поддержка всех встроенных функций, расширенные функции управления ПК, поддержка оверлейной структуры программ, расширение графических возможностей и т.д.). При необходимости использования указанных функций соответствующий модуль (кроме System-модуля, доступ к которому обеспечивается автоматически) должен декларироваться в Uses-предложении программы, например: Uses Dos, Crt, Graph, Vasco, Fido, Salcombe. Утилиты пакета предназначены как для обеспечения ряда важных функций его эксплуатации, так и для облегчения работы программиста. Из других компонент внешнего окружения пакета можно отметить ряд DOC-файлов, содержащих дополнительную информацию по пакету, PAS-файлов с исходными модулями программ-примеров, а также автономные отладчик Turbo-Debugger и СП Turbo-Assembler. Поставляемый с пакетом мощный автономный отладчик позволяет достаточно эффективно производить отладку программ, созданных в СП Turbo-C, Turbo-Pascal и Turbo-Assembler. При этом отладчик позволяет производить отладку как на одном ПК, так и посредством виртуального метода на двухмашинном комплексе из IBM-совместимых и соединенных через последовательные порты ввода/вывода ПК. Оболочка СП Turbo-Pascal включает четыре основных встроенных средства по выбору: (1) отладчик, (2) обеспечение объектно-ориентированного программирования (ООП), (3) Help-информация и (4) текстовый редактор. СП Turbo-Pascal располагает достаточно мощным и гибким встроенным отладчиком, позволяющим выполнять программу построчно, отлаживая выражения и модифицируя значения ее переменных. Отладчик является составной частью СП, позволяя не выходя из единой среды программирования: редактировать, компилировать и отлаживать Pascal-программы как простой организации, так и оверлейные или объектно-ориентированные. Выделяются три основных типа программных ошибок: компиляции, выполнения и логические. Ошибки компиляции вызываются нарушениями синтаксиса языка Turbo-Pascal и называются синтаксическими. При обнаружении такой ошибки компилятор прекращает компиляцию, возвращается к исходной программе (локализуя ошибку с помещением в нее курсора) и переводит среду в Edit-режим редактирования с выводом соответствующего диагностического сообщения. Успешное завершение компиляции возможно только при отсутствии синтаксических ошибок. Ошибки, возникающие в период выполнения программы, называются семантическими и связаны с некорректными процедурами выполнения при правильном синтаксисе (например, деление на ноль, недостаток ОП и т.д.). Такие ошибки вызывают диагностические сообщения вида: Runtime error <Код ошибки> at < Относительный адрес> с прекращением выполнения программы. После этого система автоматически локализует семантическую ошибку, привязывая ее к соответствующей строке исходного модуля, что позволяет программисту по коду ошибки и ее местоположению во многих случаях идентифицировать вызвавшую ее причину. Ошибки, связанные с неадекватностью написанной программы искомому алгоритму решаемой задачи, называются логическими и СП не идентифицируются. Во многих случаях при возникновении ошибок (кроме синтаксических) бывает достаточно сложно их локализовать и исправить даже опытному программисту. И в данной ситуации хорошим помощником может оказаться отладчик, предоставляющий программисту целый ряд средств по отладке программ: построчная трассировка программы; выполнение программы до определенного положением курсора места, установление контрольных точек; мониторинг значений переменных, структур данных или выражений; модификация значений переменных, включая строковые указатели, элементы массива и поля записей; быстрая локализация функций и процедур, а также проверка значений фактических параметров при каждом обращении к ним. Функции редактирования находятся в группах Run, Compile и Debug главного меню СП (рис. 1.2). Встроенное средство ООП является существенным развитием компилятора СП, предоставляющим возможность в полном объеме использовать основные концепции современного ООП. Ниже вопросы ООП-технологии будут рассмотрены в иных контекстах более детально Встроенное Help-средство оперативно инициируется по клавише F1, предоставляя программисту справочную информацию по всем основным компонентам СП; информация выводится по активному в данный момент состоянию пакета. Наконец, активируя Edit-группу главного меню СП (рис. 1.2), переходим в режим редактирования исходного модуля программы. Функции редактирования обеспечиваются встроенным редактором СП, работа с которым подобна хорошо известным текстовым редакторам Word-типа и особых затруднений не вызывает. К тому же описание управляющих клавиш редактора (поддерживающих команды перемещения курсора, вставки или удаления, работы с выделенными блоками и т.д.) легко получать оперативно по упомянутой выше F1-клавише. Ядро программирования пакета Turbo-Pascal составляют встроенный и автономный компиляторы, отличающиеся только поддерживаемым уровнем автоматизации программирования при прочих равных возможностях. Если автономный компилятор (файл ТРС.ЕХЕ) предполагает использование автономных средств: редактора исходных модулей, отладчика и Help-утилиты, то СП (TURBO.EXE) со встроенным компилятором предоставляет эти и другие возможности в рамках единой интегрированной среды программирования. Результатом работы обоих средств программирования является ЕХЕ- или TPU-файл (помещаемый в памяти или на диске), содержащий соответственно выполняемую программу или используемый модуль. Такой файл получает основное имя исходного PAS-файла и содержит символьную информацию и скомпилированное тело модуля. Также для обоих средств доступен TPL-файл, содержащий библиотеку стандартных модулей системы программирования Turbo-Pascal.
|