Руководство по языку
=========================================================================
B.Pascal 7 & Objects/LR - 1 -
Введение.......................................................10
О чем рассказывается в данном руководстве......................11
Часть I. Язык Borland Pascal...................................12
Глава 1. Что такое программа Borland Pascal?...................12
Программа Borland Pascal.......................................13
Процедуры и функции............................................13
Операторы......................................................15
Выражения......................................................16
Лексемы........................................................17
Типы, переменные, константы и типизированные константы.........17
Компоновка частей..............................................19
Модули.........................................................20
Синтаксические диаграммы.......................................21
Глава 2. Лексемы...............................................22
Специальные символы............................................22
Зарезервированные слова и стандартные директивы Borland
Pascal........................................................24
Идентификаторы.................................................25
Числа..........................................................27
Метки..........................................................29
Строки символов................................................29
Комментарии....................................................31
Строки программы...............................................31
Глава 3. Константы.............................................32
Глава 4. Типы..................................................34
Простые типы...................................................35
Порядковые типы................................................35
Целочисленные типы.............................................37
Булевские типы.................................................39
Символьный тип (char)..........................................40
Перечислимые типы..............................................40
Отрезки типа...................................................41
Вещественные типы..............................................42
Программная поддержка чисел с плавающей точкой.................43
Аппаратная поддержка чисел с плавающей точкой..................43
Строковые типы.................................................44
Структурные типы...............................................45
Типы массив....................................................46
Типы запись....................................................48
Объектные типы.................................................50
Компоненты и область действия..................................54
Методы.........................................................54
Виртуальные методы.............................................54
Динамические методы............................................56
Создание экземпляров объектов..................................57
Активизация методов............................................59
Активизация уточненных методов.................................60
Множественные типы.............................................61
Файловые типы..................................................62
Ссылочные типы.................................................63
Тип Pointer....................................................64
Тип PChar......................................................64
Процедурные типы...............................................65
B.Pascal 7 & Objects/LR - 2 -
Процедурные значения...........................................65
Совместимость типов............................................67
Тождественные и совместимые типы...............................67
Тождественность типов..........................................67
Совместимость типов............................................68
Совместимость по присваиванию..................................69
Раздел описания типов..........................................70
Глава 5. Переменные и типизированные константы.................72
Описания переменных............................................72
Сегмент данных.................................................73
Сегмент стека..................................................73
Абсолютные переменные..........................................74
Ссылки на переменные...........................................76
Квалификаторы..................................................77
Массивы, строки и индексы......................................78
Записи и десигнаторы полей.....................................79
Десигнаторы компонентов объекта................................79
Переменные-указатели и динамические переменные.................79
Приведение типов переменных....................................81
Типизированные константы.......................................83
Константы простого типа........................................84
Константы строкового типа......................................84
Константы структурного типа....................................85
Константы типа массив..........................................86
Константы типа запись..........................................88
Константы объектного типа......................................89
Константы множественного типа..................................90
Константы ссылочного типа......................................91
Константы процедурного типа....................................92
Глава 6. Выражения.............................................93
Синтаксис выражений............................................94
Операции.......................................................99
Арифметические операции........................................99
Унарные арифметические операции...............................100
Логические операции...........................................101
Булевские операции............................................101
Операция со строками..........................................103
Операции над символьными указателями..........................104
Операции над множествами......................................105
Операции отношения............................................106
Сравнение простых типов.......................................107
Сравнение строк...............................................107
Сравнение упакованных строк...................................107
Сравнение указателей..........................................107
Сравнение символьных указателей...............................108
Сравнение множеств............................................108
Проверка на принадлежность к множеству........................108
Операция @....................................................109
Использование операции @ для переменной.......................110
Использование операции @ для процедуры или функции или
метода.......................................................111
Вызовы функции................................................111
Описатели множества...........................................113
B.Pascal 7 & Objects/LR - 3 -
Приведение типа значений......................................114
Процедурные типы в выражениях.................................115
Глава 7. Операторы............................................117
Простые операторы.............................................117
Оператор присваивания.........................................118
Операторы процедуры...........................................119
Операторы перехода............................................120
Структурные операторы.........................................120
Составные операторы...........................................121
Условные операторы............................................121
Оператор условия (if).........................................122
Оператор варианта (case)......................................123
Оператор цикла................................................125
Оператор цикла с постусловием (repeat)........................125
Операторы цикла с предусловием (while)........................127
Операторы цикла с параметром (for)............................128
Оператор with.................................................131
Глава 8. Блоки, локальность и область действия................133
Синтаксис.....................................................133
Правила для области действия..................................136
Область действия для блока....................................136
Область действия записи.......................................137
Область действия объекта......................................137
Область действия модуля.......................................137
Глава 9. Процедуры и функции..................................139
Описания near и far...........................................141
Описания export...............................................142
Описания interrupt............................................143
Описание forward..............................................143
Описания external.............................................145
Описания assembler............................................147
Описания inline...............................................147
Описания функций..............................................148
Описания методов..............................................150
Конструкторы и деструкторы....................................151
Восстановление ошибок конструктора............................154
Параметры.....................................................156
Параметры-значения............................................157
Параметры-константы...........................................157
Параметры-переменные..........................................157
Нетипизированные параметры....................................158
Открытые параметры............................................160
Открытые строковые параметры..................................160
Открытые параметры-массивы....................................162
Динамические переменные объектного типа.......................163
Процедурные переменные........................................165
Параметры процедурного типа...................................168
Глава 10. Программы и модули..................................170
Синтаксис программ............................................170
Заголовок программы...........................................170
Оператор uses.................................................171
Синтаксис модулей.............................................172
Заголовок модуля..............................................172
B.Pascal 7 & Objects/LR - 4 -
Интерфейсная секция...........................................173
Секция реализации.............................................174
Секция инициализации..........................................175
Косвенные ссылки на модули....................................175
Перекрестные ссылки на модули.................................177
Совместное использование описаний.............................179
Глава 11. Динамически компонуемые библиотеки..................180
Что такое DLL?................................................180
Использование DLL.............................................180
Модули импорта................................................182
Статический и динамический импорт.............................184
Написание DLL.................................................185
Директива процедуры export....................................187
Оператор exports..............................................187
Код инициализации библиотеки..................................189
Замечания по программированию библиотек.......................191
Глобальные переменные в DLL...................................191
Глобальные переменные и файлы в DLL...........................191
DLL и модуль System...........................................191
Ошибки этапа выполнения в DLL.................................192
DLL и сегменты стека..........................................192
Создание совместно используемых DLL...........................193
Глава 12. Библиотеки исполняющей системы......................194
Модули Borland Pascal.........................................194
Модуль System.................................................195
Модуль Dos и WinDos...........................................195
Модуль Crt....................................................195
Модуль WinCrt.................................................196
Модуль Printer................................................196
Модуль WinPrn.................................................196
Модуль Overlay................................................196
Модуль Strings................................................197
Модуль Graph..................................................197
Модули Turbo3 и Graph3........................................197
Модули WinTypes и WinProcs....................................197
Модуль Win31..................................................198
Модуль WinAPI.................................................198
Модули, поддерживающие Windows 3.1............................198
Глава 13. Стандартные процедуры и функции.....................199
Процедуры управления работой программы........................200
Функции преобразования........................................200
Арифметические функции........................................201
Порядковые процедуры и функции................................202
Строковые процедуры и функции.................................202
Процедуры и функции динамического распределения памяти........203
Функции для работы с указателями и адресами...................204
Прочие процедуры и функции....................................205
Предописанные переменные......................................206
Глава 14. Ввод и вывод........................................215
Файловый ввод-вывод...........................................217
Текстовые файлы...............................................219
Нетипизированные файлы........................................221
Переменная FileMode...........................................221
B.Pascal 7 & Objects/LR - 5 -
Устройства в Borland Pascal...................................222
Устройства DOS................................................223
Устройство CОN................................................224
Устройства LРT1, LРT2 и LРT3..................................224
Устройства CОМ1 и CОМ2........................................225
Устройство NUL................................................225
Устройства, предназначенные для текстовых файлов..............225
Ввод и вывод с помощью модуля Crt.............................226
Использование модуля CRT......................................227
Окна CRT......................................................227
Специальные символы...........................................228
Ввод строк....................................................228
Процедуры и функции модуля Crt................................230
Константы и переменные модуля Crt.............................232
Ввод и вывод с помощью модуля WinCrt..........................233
Использование модуля WinCrt...................................234
Специальные символы...........................................236
Ввод строк....................................................236
Процедуры и функции...........................................237
Переменные модуля WinCrt......................................239
Печать из программы Windows...................................241
Изменение заголовков..........................................241
Изменение шрифтов.............................................242
Остановка задания печати......................................243
Специальные символы...........................................243
Процедуры и функции модуля WinPrn.............................244
Функция Open..................................................246
Функция InOut.................................................246
Функция Flush.................................................247
Функция Clоsе.................................................247
Глава 15. Использование сопроцессора 80x87....................248
Типы данных процессора 80x87..................................251
Арифметические операции с повышенной точностью................252
Сравнение вещественных чисел..................................253
Стек вычислений сопроцессора 80x87............................253
Запись вещественных чисел при использовании сопроцессора
80x87........................................................255
Модули, в которых используется сопроцессор 80x87..............255
Распознавание сопроцессора 80х87 в программах DOS.............256
Распознавание сопроцессора 80x87 в программе Windows..........257
Использование эмуляции сопроцессора 80x87 на языке
ассемблера...................................................258
Глава 16. Модуль Dоs..........................................259
Процедуры и функции модуля Dos................................260
Константы, типы и переменные модуля Dos.......................263
Типы..........................................................263
Переменные модуля Dos.........................................264
Процедуры и функции модуля WinDos.............................265
Константы, типы и переменные модуля WinDos....................268
Типы..........................................................269
Переменные модуля WinDos......................................269
Глава 17. Программирование в защищенном режиме DOS............270
Что такое защищенный режим?...................................270
B.Pascal 7 & Objects/LR - 6 -
Расширения Borland защищенного режима DOS.....................274
DPMI-сервер...................................................274
Администратор этапа выполнения................................274
Разработка прикладных программ DOS защищенного режима.........276
Надежное программирование в защищенном режиме.................276
Загрузка в сегментные регистры недопустимых значений..........277
Функция Ptr и массивы Mem.....................................277
Абсолютные переменные.........................................277
Операции с сегментами.........................................278
Использование сегментных......................................278
Доступ к памяти вне границ сегмента...........................278
Запись в сегмент кода.........................................279
Разыменование указателей nil..................................279
Сегменты кода и данных........................................279
Управление динамически распределяемой памятью.................280
Предопределенные селекторы....................................280
Переменная SelectorInc........................................281
Модуль WinAPI.................................................284
Управление памятью............................................284
Подпрограммы управления памятью API...........................285
Управление модулем............................................289
Управление ресурсами..........................................290
Управление селектором.........................................291
Другие подпрограммы API.......................................292
Прямой доступ к DPMI-серверу..................................293
Компиляция прикладной программы защищенного режима............293
Выполнение программы защищенного режима DOS...................294
Управление объемом используемой RTM памяти....................295
Глава 18. Строки с завершающим нулем..........................297
Что такое строка с завершающим нулем?.........................297
Функции модуля Strings........................................297
Функции модуля Strings........................................298
Использование строк с завершающим нулем.......................299
Символьные указатели и строковые литералы.....................301
Символьные указатели и символьные массивы.....................302
Индексирование символьного указателя..........................303
Операции с символьными указателями............................304
Строки с завершающим нулем и стандартные процедуры............305
Пример использования функций с завершающим нулем..............306
Глава 19. Использование графического интерфейса Borland.......308
Драйверы......................................................308
Поддержка устройства IBM 8514.................................310
Система координат.............................................311
Текущий указатель.............................................311
Текст.........................................................313
Графические изображения и их виды.............................314
Области просмотра и двоичные образы...........................314
Поддержка страниц и цветов....................................315
Обработка ошибок..............................................315
Начало работы.................................................316
Пользовательские программы управления динамически
распределяемой памятью.......................................318
Процедуры модуля Graph........................................321
B.Pascal 7 & Objects/LR - 7 -
Константы, типы и переменные модуля Graph.....................326
Константы.....................................................326
Типы..........................................................328
Переменные....................................................328
Глава 20. Использование оверлеев..............................329
Администратор оверлеев........................................330
Управление оверлейным буфером.................................331
Процедуры и функции модуля Overlay............................334
Коды результата...............................................335
Разработка программ с оверлеями...............................335
Генерация оверлейного кода....................................336
Требование использования дальнего типа вызовов................337
Инициализация администратора оверлеев.........................338
Разделы инициализации в оверлейных модулях....................341
Что не должно использоваться в качестве оверлеев..............342
Отладка оверлеев..............................................343
Внешние программы в оверлеях..................................343
Задание функции чтения оверлея................................345
Оверлеи в файлах .EXE.........................................347
Часть III. В среде Borland Pascal.............................348
Глава 21. Использование памяти................................348
Использование памяти программами реального режима DOS.........348
Администратор динамически распределяемой области памяти DOS...350
Методы освобождения областей динамически распределяемой
памяти.......................................................352
Список свободных блоков.......................................355
Переменная HeapError..........................................356
Использование памяти в программах DOS защищенного режима......359
Сегменты кода.................................................359
Атрибуты сегмента.............................................359
Атрибуты MOVEABLE или FIXED...................................359
Атрибуты PRELOAD или DEMANDLOAD...............................359
Атрибуты DISCARDABLE или PERMAMENT............................359
Сегменты данных и стека.......................................361
Изменение атрибутов...........................................361
Администратор динамически распределяемой области памяти DOS...362
Переменная HeapError..........................................363
Использование памяти в программах Windows.....................365
Атрибуты сегментов............................................365
Атрибуты MOVEABLE или FIXED...................................365
Атрибуты PRELOAD или DEMANDLOAD...............................365
Атрибуты DISCARDABLE или PERMANENT............................365
Изменение атрибутов...........................................365
Сегмент локальных динамических данных.........................367
Администратор динамически распределяемой области памяти.......368
Переменная HeapError..........................................370
Форматы внутреннего представления данных......................372
Целочисленные типы............................................372
Символьный тип................................................372
Булевский тип.................................................372
Перечислимый тип..............................................372
Типы с плавающей точкой.......................................373
Вещественный тип..............................................373
B.Pascal 7 & Objects/LR - 8 -
Тип числа с одинарной точностью...............................374
Тип числа с двойной точностью.................................374
Тип числа с повышенной точностью..............................375
Сложный тип...................................................375
Значения типа указатель.......................................375
Значения строкового типа......................................376
Значения множественного типа..................................376
Значения типа массив..........................................376
Значения типа запись..........................................376
Объектные типы................................................377
Таблица виртуальных методов...................................378
Таблица динамических методов..................................381
Значения файлового типа.......................................385
Процедурные типы..............................................387
Прямой доступ к памяти........................................387
Прямой доступ к портам........................................387
Глава 22. Вопросы управления..................................388
Соглашения по вызовам.........................................388
Параметры-переменные..........................................388
Параметры-значения............................................388
Открытые строковые параметры..................................389
Результаты функций............................................390
Ближние и дальние типы вызовов................................391
Вложенные процедуры и функции.................................391
Соглашения о вызовах методов..................................392
Вызовы виртуальных методов....................................394
Вызовы динамических методов...................................395
Конструкторы и деструкторы....................................396
Стандартный код входа и выхода................................396
Соглашения по сохранению регистров............................400
Процедуры выхода..............................................400
Обработка прерываний..........................................403
Разработка процедур обработки прерываний......................403
Глава 23. Автоматическая оптимизация..........................405
Свертывание констант..........................................405
Слияние констант..............................................405
Вычисление по короткой схеме..................................405
Параметры-константы...........................................406
Устранение избыточной загрузки указателей.....................406
Подстановка констант множественного типа......................406
Малые множества...............................................407
Порядок вычисления............................................407
Проверка на допустимость границ...............................408
Использование сдвига вместо умножения.........................408
Автоматическое выравнивание на границу слова..................408
Удаление неиспользуемого кода.................................409
Эффективная компоновка........................................409
Часть IV. Использование Borland Pascal с языком ассемблера....411
Глава 24. Встроенный ассемблер................................411
Оператор asm..................................................411
Использование регистров.......................................412
Синтаксис операторa ассемблера................................412
Метки.........................................................413
B.Pascal 7 & Objects/LR - 9 -
Размер инструкции RET.........................................413
Автоматическое определение размера перехода...................414
Директивы ассемблера..........................................415
Операнды......................................................417
Выражения.....................................................417
Различия между выражениями Паскаля и ассемблера...............418
Элементы выражений............................................419
Константы.....................................................420
Числовые константы............................................420
Строковые константы...........................................420
Регистры......................................................422
Идентификаторы................................................422
Классы выражений..............................................426
Типы выражений................................................427
Операции в выражениях.........................................430
Процедуры и функции ассемблера................................434
Глава 25. Компоновка с программами на языке ассемблера........437
Турбо Ассемблер и Borland Pascal..............................438
Примеры программ на языке ассемблера..........................440
Методы на языке ассемблера....................................441
Включаемый машинный код.......................................442
Операторы Inline..............................................442
Директивы inline..............................................444
скачать | некачать