- •Лекция № 2.
- •Тема: Интегрированная среда разработки Free Pascal (ИСР).
- •1. Введение в ИСР.
- •2. Этапы подготовки программы в ИСР.
- •Ошибки?
- •Ошибки?
- •Редактор
- •Компилятор
- •Компоновщик
- •Загрузчик
- •Отладчик
- •Вычисление выражений из констант порядкового типа.
- •Формирование одной ссылки на многократно используемую константу строкового типа.
- •Сокращенное вычисление булевских выражений.
- •Сокращение операций при описании параметров – констант в параметрах подпрограмм.
- •Формирование одной ссылки на поля структур через оператор with в параметрах подпрограмм.
- •Сокращение кода при использовании констант множественного типа и оператора in в отличие от использования логических выражений.
- •Оптимизация кода при использовании множеств с границами 0..7 и 0..15.
- •Вычисление операндов выражения – функций в порядке справа налево.
- •Проверка допустимости границ используемых в вычислении переменных.
- •Преобразование операций умножения на степень двойки в сдвиг переменной.
- •Выравнивание переменных и констант на границу машинного слова (32 или 64 бита) для оптимизации обращения по четному адресу.
- •Игнорирование операторов, которые не будут выполняться никогда.
- •Run-time error<nnn> at <xxxx:yyyy>,
- •При выполнении и после выполнения программы возможно выявить ошибки трех типов:
- •Программа выдает ошибку периода выполнения – вызов прерывания (например, деление на ноль).
- •Программа не завершает своей работы (возможность бесконечного цикла) и требуется нажатие Ctrl+Break для аварийного завершения работы (только не во время ввода данных).
- •Программа завершает свою работу, но выдает неверные результаты.
- •4. Общий вид экрана при работе в ИСР.
- •5. Классификация окон в ИСР и возможности по управлению окнами.
- •Действия
- •Горячая клавиша
- •6. Назначение секций основного меню.
Алгоритмизация и программирование. Лекции. |
|
|
|
|
|
|
Материалы лекции подготовлены к.т.н., доц. Петренко Т.Г. и к.т.н., ст. преп. Резниченко Ю.С |
|
|
||||
Лектор − к.т.н., ст. преп. Резниченко Ю.С., 2013-2014 уч. год. |
|
|
|
|
|
|
выявлены ошибки, то возможен этап тестирования и отладки с использованием |
||||||
инструментария отладчика ИСР. |
|
|
|
|
|
|
Редактор |
Компилятор |
|
Компоновщик |
|
||
MY.PAS |
MY.O |
|
|
MY.EXE |
|
|
ДА |
Ошибки? |
|
НЕТ |
|
|
|
|
|
|
Загрузчик |
|
|
|
|
|
|
|
|
|
|
Отладчик |
|
ДА |
|
Ошибки? |
|
|
|
|
|
|
|
|
|
|
|
|
|
НЕТ |
|
|
|
|
|
|
Выход |
|
|
Рисунок 1 − Этапы подготовки программы в ИСР FP |
|
|
||||
3. Назначение основных файлов поставки системы Free Pascal и основных |
||||||
подсистем − редактора, транслятора, компоновщика, загрузчика, отладчика. |
|
|||||
ИСР поддерживает для работы компилятора удобный пользовательский |
||||||
интерфейс. ИСР является приложением с текстовым режимом работы, которое |
||||||
имеет одинаковый вид и поддерживается всеми операционными системами (Dos, |
||||||
Windows, Linux). Основные особенности |
ИСР |
(см. |
User's |
guide |
- |
|
http://www.freepascal.org/docs.var): |
|
|
|
|
|
|
−высокоскоростной компилятор;
−полноценный 32-битный или 64-битный код;
−оптимизация кода;
−документация высокого качества;
−широкие возможности компиляции ассемблерного кода (в частности, GNU Assembler (GAS), Netwide assembler (Nasm), Microsoft Assembler/Turbo Assembler (Masm/Tasm), Watcom assembler (Wasm));
−возможность вызова внешнего C-кода, а также конвертации заголовочных файлов в модули FP;
−преимущества языка программирования:
−практически полная совместимость с Borland Pascal и Borland Delphi;
−поддержка ansi-строк и расширенных строк;
−поддержка исключительных ситуаций;
Алгоритмизация и программирование. Лекции.
Материалы лекции подготовлены к.т.н., доц. Петренко Т.Г. и к.т.н., ст. преп. Резниченко Ю.С Лектор − к.т.н., ст. преп. Резниченко Ю.С., 2013-2014 уч. год.
−перегрузка процедур и операторов;
−Generics;
−поддержка динамических массивов;
−поддержка COM, CORBA и raw-интерфейсов;
−поддержка вариантного типа;
−встраивание и т.д. Стандартная папка FPC включает подпапки:
•BIN – основная папка среды, включает исполняемые программы среды (например, fp.exe − ИСР FP в оконном режиме, fpc.exe − ИСР FP в режиме командной строки, gdb.exe − отладчик, make.exe – утилита, которая поддерживает сборку программы, bin2obj.exe − утилита создания внешнего
объектного файла, grep.exe - утилита поиска в .pas файлах, gdate.exe − утилита изменения даты и времени создания файла; кроме исполняемых файлов в этой папке содержаться отдельные модули библиотеки (.dll) и файл всей библиотеки (unit.pt), файл справочной системы (fpdoc.exe), файл конфигурации (fp.cfg) − изначально хранит стандартные настройки среды, при нежелательной модификации их пользователем может быть удален, при следующей загрузке среды будет восстановлен автоматически, файл настройки (fp.dsk) − содержит информацию об установленных точках прерывания и т.д.; информацию о файлах поставки можно получить на сайте http://www.freepascal.org/ и http://wiki.freepascal.org/Textmode_IDE_development);
•DOC – документация по программным средствам среды;
•EXAMPLES – примеры исходного кода;
•MSG – сообщения об ошибках;
•UNITS – модули среды;
•DEMO − демонстрационные примеры работы в различных режимах.
Для запуска ИСР необходимо поставить на выполнение fp.exe. Для выхода
из ИСР используется комбинация Alt+X (пункт меню File→Exit).
Основные подсистемы ИСР − редактор, транслятор, компоновщик, загрузчик, отладчик. Назначение подсистем ИСР – обеспечить разработку программ на языке BP.
Рассмотрим редактор ИСР. Редактор – модуль ИСР, который позволяет ввести исходный код Pascal программы с клавиатуры или в виде текстового файла с носителя памяти, редактировать исходный код и сохранить на носителе памяти
(долговременной памяти) в файле .pas. Редактор ИСР обладает следующими
свойствами:
1)Многооконность – позволяет разрабатывать программу, собирая ее по частям из разных окон редактирования. Каждое окно редактирования (по визуальным соображениям одновременно просматривать больше 9 окон в среде невозможно) обладает рамкой (перемещая за правый нижний угол, можно изменять размер окна, а перемещая любую из сторон рамки – менять положение окна), вертикальной и горизонтальной линейками прокрутки, маркерами «увеличить» и «закрыть». Активное окно редактирования распологается поверх остальных окон редактирования, имеет двойную рамку
Алгоритмизация и программирование. Лекции.
Материалы лекции подготовлены к.т.н., доц. Петренко Т.Г. и к.т.н., ст. преп. Резниченко Ю.С Лектор − к.т.н., ст. преп. Резниченко Ю.С., 2013-2014 уч. год.
и в окне мерцает курсор. В разрыве верхней границы контура окна – имя редактируемого или создаваемого файла (по умолчанию noname01.pas, рис. 2). Слева на нижней границе окна, в разрыве контура – позиция курсора в окне (строка : столбец). Окна среды, включая окна редактирования, можно
расположить мозаикой (пункт меню Window→Tile), каскадом (пункт меню
Window→Cascade), а также меняя размеры и положение каждого окна мышью или клавишами управления курсором (пункт меню
Window→Size/Move – Ctrl+F5) – пользовательским способом. Закрыть активное окно можно с помощью пункта меню Window→Close (Alt+F3), закрыть все окна среды можно с помощью пункта меню Window→Close all. Переход между окнами выполняется по нажатию Alt+<номер окна> (например, перейти на третье открытое окно Alt+3). Список всех окон, открытых в ИСР, можно получить с помощью пункта меню Window→List...
(Alt+0). Активному окну доступны возможности основного меню, контекстного меню и активных клавиш в статусной строке среды (перечень активных клавиш меняется в зависимости от типа активного окна, возможно, не окна редактирования).
Рисунок 2 − Окно редактирования в ИСР FP
2)Наличие общедоступного и локального (для отдельного окна редактирования) буферов обмена. Назначение общедоступного буфера обмена – обмен между окнами или внутри одного окна, а локального – обмен только внутри окна. Работа с общедоступным буфером обмена выполняется с помощью пункта меню Edit или горячие клавиши (Edit→Cut − Shift+Del, Edit→Copy – Ctrl+Ins, Edit→Paste – Shift+Ins, Edit→Clear – Ctrl+Del, Edit→Show clipboard). Существует возможность отмены исправлений (Edit→Undo – Alt+BkSp) и возрата к неисправленному тексту (Edit→Redo). Работа с локальным буфером обмена выполняется с помощью горячих клавиш (см. \doc\user.pdf “The IDE”). Команды по работе с блоками в локальном буфере выполняются быстрее. Рекомендуется их применять при работе в отдельном окне редактирования. Например, часто используются команды по работе с блоками текста:
Алгоритмизация и программирование. Лекции.
Материалы лекции подготовлены к.т.н., доц. Петренко Т.Г. и к.т.н., ст. преп. Резниченко Ю.С Лектор − к.т.н., ст. преп. Резниченко Ю.С., 2013-2014 уч. год.
−Ctrl+K+B − начать выделение блока;
−Ctrl+K+K − завершить выделение блока;
−Ctrl+K+L − выделить текущую строку в коде;
−Ctrl+K+T − выделить текущее слово в коде;
−Ctrl+K+C − копировать блок;
−Ctrl+K+V − переместить блок;
−Ctrl+K+Y − удалить блок;
−Ctrl+K+P − распечатать блок.
3)Настройки редактора могуть быть выполнены индивидуально с помощью пункта меню Options→Environment→Editor…. Опции редактора позволяют управлять наличием .bak-файла, переключаться в режим замены, автоматически выстраивать текст с необходимым сдвигом на нужных строках, использовать табуляцию и задавать ее размер и т.д. В пункте меню Options→Environment→Preferences… можно управлять видеорежимом, настраивать автосохранение для файлов рабочего пространства и другие опции.
4)В окнах редактирования можно получать контекстную помощь по элементам языка (Help→Topic search – Ctrl+F1), по терминам среды (Help→Index – Shift+F1), а
также получить окно предыдущей справки (Help→Previous topic – Alt+F1). Нажатие в окне редактирования F1 даст контекстную справку об окне редактирования.
5)Некоторые дополнительные возможности, повышающие эффективность
разработки программы. В частности, целесообразно использовать встроенный калькулятор (пункт меню Tools→Calculator, рис. 3) и таблицу ASCII-кодов (пункт меню Tools→Ascii table, рис. 4).
Рисунок 3 − Калькулятор в ИСР FP
Рисунок 4 − Таблица ASCII-кодов в ИСР FP
