ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 11 ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН ЦДДДДДДДї Авторский коллектив "*.*" є ХНН» і ЦДї ЦДї є і є і є і є і є АДДј Аї ЦДДДДДї ЦДДДДДї є і ЦДДДДДї ЦДДї ЦДї ЦДДДЅ і є ХНН» і є ХН» і є ХН» і є і є ХН» і є Аїє і є ХН» і є і є і є і є і є АДј µ є і є АДј і є Х»АЅ і є і є і є АДДј і є АДј і є ХН» Аї є Аї ЦЅ ХН» і є іИ» і є АДј і ИННННННННѕ ИНННННѕ ИНѕ ИННѕ ИННѕ ИННѕ ИНѕ ИНѕ ИННѕ ИНННННЩ РЕЗИДЕНТНАЯ ПРОГРАММА-СПРАВОЧНИК ЦДДДДДДДДї ПО РУКОВОДСТВАМ: є ХНННН» і ПОЛЬЗОВАТЕЛЯ, ПРОГРАММИСТА И ЯЗЫКУ є і є і ЦДДДДї ЦДДДДї Цї ЦДДї ЦДДДДї ЦДДДДї ЦДї є і є і є ХН»і є ХННѕ єАДЅ Хѕ є ХН»і є ХН»і є АДДДДї є і є і є АДЅі є і єХН» Аї є АДЅі є і єі є ХНН» і є і є і Йј ХН»і є АДДї єі И» Аї Йј ХН»і Йј і єі є АДДЅ і ИНѕ ИНѕ ИННѕ Иѕ ИННННѕ Иѕ ИННѕ ИННѕ Иѕ ИННѕ Иѕ ИННННННѕ г.Москва, 1993 г. (ВЕРСИЯ 7) ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН 3. Руководство по языку ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН Введение................................................... О чем рассказывается в данном руководстве.................. Часть I. Язык Borland Pascal............................... Глава 1. Что такое программа Borland Pascal?............... Программа Borland Pascal................................... Процедуры и функции........................................ Операторы.................................................. Выражения.................................................. Лексемы.................................................... Типы, переменные, константы и типизированные константы..... Компоновка частей.......................................... Модули..................................................... Синтаксические диаграммы................................... Глава 2. Лексемы........................................... Специальные символы........................................ Зарезервированные слова и стандартные директивы Borland Pascal.................................................... Идентификаторы............................................. Числа...................................................... Метки...................................................... Строки символов............................................ Комментарии................................................ Строки программы........................................... Глава 3. Константы......................................... Глава 4. Типы.............................................. Простые типы............................................... Порядковые типы............................................ Целочисленные типы......................................... Булевские типы............................................. Символьный тип (char)...................................... Перечислимые типы.......................................... Отрезки типа............................................... Вещественные типы.......................................... Программная поддержка чисел с плавающей точкой............. Аппаратная поддержка чисел с плавающей точкой.............. Строковые типы............................................. Структурные типы........................................... Типы массив................................................ Типы запись................................................ Объектные типы............................................. Компоненты и область действия.............................. Методы..................................................... Виртуальные методы......................................... Динамические методы........................................ Создание экземпляров объектов.............................. Активизация методов........................................ Активизация уточненных методов............................. Множественные типы......................................... Файловые типы.............................................. Ссылочные типы............................................. Тип Pointer................................................ Тип PChar.................................................. Процедурные типы........................................... Процедурные значения....................................... Совместимость типов........................................ Тождественные и совместимые типы........................... Тождественность типов...................................... Совместимость типов........................................ Совместимость по присваиванию.............................. Раздел описания типов...................................... Глава 5. Переменные и типизированные константы............. Описания переменных........................................ Сегмент данных............................................. Сегмент стека.............................................. Абсолютные переменные...................................... Ссылки на переменные....................................... Квалификаторы.............................................. Массивы, строки и индексы.................................. Записи и десигнаторы полей................................. Десигнаторы компонентов объекта............................ Переменные-указатели и динамические переменные............. Приведение типов переменных................................ Типизированные константы................................... Константы простого типа.................................... Константы строкового типа.................................. Константы структурного типа................................ Константы типа массив...................................... Константы типа запись...................................... Константы объектного типа.................................. Константы множественного типа.............................. Константы ссылочного типа.................................. Константы процедурного типа................................ Глава 6. Выражения......................................... Синтаксис выражений........................................ Операции................................................... Арифметические операции.................................... Унарные арифметические операции............................ Логические операции........................................ Булевские операции......................................... Операция со строками....................................... Операции над символьными указателями....................... Операции над множествами................................... Операции отношения......................................... Сравнение простых типов.................................... Сравнение строк............................................ Сравнение упакованных строк................................ Сравнение указателей....................................... Сравнение символьных указателей............................ Сравнение множеств......................................... Проверка на принадлежность к множеству..................... Операция @................................................. Использование операции @ для переменной.................... Использование операции @ для процедуры или функции или метода.................................................... Вызовы функции............................................. Описатели множества........................................ Приведение типа значений................................... Процедурные типы в выражениях.............................. Глава 7. Операторы......................................... Простые операторы.......................................... Оператор присваивания...................................... Операторы процедуры........................................ Операторы перехода......................................... Структурные операторы...................................... Составные операторы........................................ Условные операторы......................................... Оператор условия (if)...................................... Оператор варианта (case)................................... Оператор цикла............................................. Оператор цикла с постусловием (repeat)..................... Операторы цикла с предусловием (while)..................... Операторы цикла с параметром (for)......................... Оператор with.............................................. Глава 8. Блоки, локальность и область действия............. Синтаксис.................................................. Правила для области действия............................... Область действия для блока................................. Область действия записи.................................... Область действия объекта................................... Область действия модуля.................................... Глава 9. Процедуры и функции............................... Описания near и far........................................ Описания export............................................ Описания interrupt......................................... Описание forward........................................... Описания external.......................................... Описания assembler......................................... Описания inline............................................ Описания функций........................................... Описания методов........................................... Конструкторы и деструкторы................................. Восстановление ошибок конструктора......................... Параметры.................................................. Параметры-значения......................................... Параметры-константы........................................ Параметры-переменные....................................... Нетипизированные параметры................................. Открытые параметры......................................... Открытые строковые параметры............................... Открытые параметры-массивы................................. Динамические переменные объектного типа.................... Процедурные переменные..................................... Параметры процедурного типа................................ Глава 10. Программы и модули............................... Синтаксис программ......................................... Заголовок программы........................................ Оператор uses.............................................. Синтаксис модулей.......................................... Заголовок модуля........................................... Интерфейсная секция........................................ Секция реализации.......................................... Секция инициализации....................................... Косвенные ссылки на модули................................. Перекрестные ссылки на модули.............................. Совместное использование описаний.......................... Глава 11. Динамически компонуемые библиотеки............... Что такое DLL?............................................. Использование DLL.......................................... Модули импорта............................................. Статический и динамический импорт.......................... Написание DLL.............................................. Директива процедуры export................................. Оператор exports........................................... Код инициализации библиотеки............................... Замечания по программированию библиотек.................... Глобальные переменные в DLL................................ Глобальные переменные и файлы в DLL........................ DLL и модуль System........................................ Ошибки этапа выполнения в DLL.............................. DLL и сегменты стека....................................... Создание совместно используемых DLL........................ Глава 12. Библиотеки исполняющей системы................... Модули Borland Pascal...................................... Модуль System.............................................. Модуль Dos и WinDos........................................ Модуль Crt................................................. Модуль WinCrt.............................................. Модуль Printer............................................. Модуль WinPrn.............................................. Модуль Overlay............................................. Модуль Strings............................................. Модуль Graph............................................... Модули Turbo3 и Graph3..................................... Модули WinTypes и WinProcs................................. Модуль Win31............................................... Модуль WinAPI.............................................. Модули, поддерживающие Windows 3.1......................... Глава 13. Стандартные процедуры и функции.................. Процедуры управления работой программы..................... Функции преобразования..................................... Арифметические функции..................................... Порядковые процедуры и функции............................. Строковые процедуры и функции.............................. Процедуры и функции динамического распределения памяти..... Функции для работы с указателями и адресами................ Прочие процедуры и функции................................. Предописанные переменные................................... Глава 14. Ввод и вывод..................................... Файловый ввод-вывод........................................ Текстовые файлы............................................ Нетипизированные файлы..................................... Переменная FileMode........................................ Устройства в Borland Pascal................................ Устройства DOS............................................. Устройство CОN............................................. Устройства LРT1, LРT2 и LРT3............................... Устройства CОМ1 и CОМ2..................................... Устройство NUL............................................. Устройства, предназначенные для текстовых файлов........... Ввод и вывод с помощью модуля Crt.......................... Использование модуля CRT................................... Окна CRT................................................... Специальные символы........................................ Ввод строк................................................. Процедуры и функции модуля Crt............................. Константы и переменные модуля Crt.......................... Ввод и вывод с помощью модуля WinCrt....................... Использование модуля WinCrt................................ Специальные символы........................................ Ввод строк................................................. Процедуры и функции........................................ Переменные модуля WinCrt................................... Печать из программы Windows................................ Изменение заголовков....................................... Изменение шрифтов.......................................... Остановка задания печати................................... Специальные символы........................................ Процедуры и функции модуля WinPrn.......................... Функция Open............................................... Функция InOut.............................................. Функция Flush.............................................. Функция Clоsе.............................................. Глава 15. Использование сопроцессора 80x87................. Типы данных процессора 80x87............................... Арифметические операции с повышенной точностью............. Сравнение вещественных чисел............................... Стек вычислений сопроцессора 80x87......................... Запись вещественных чисел при использовании сопроцессора 80x87..................................................... Модули, в которых используется сопроцессор 80x87........... Распознавание сопроцессора 80х87 в программах DOS.......... Распознавание сопроцессора 80x87 в программе Windows....... Использование эмуляции сопроцессора 80x87 на языке ассемблера................................................ Глава 16. Модуль Dоs....................................... Процедуры и функции модуля Dos............................. Константы, типы и переменные модуля Dos.................... Типы....................................................... Переменные модуля Dos...................................... Процедуры и функции модуля WinDos.......................... Константы, типы и переменные модуля WinDos................. Типы....................................................... Переменные модуля WinDos................................... Глава 17. Программирование в защищенном режиме DOS......... Что такое защищенный режим?................................ Расширения Borland защищенного режима DOS.................. DPMI-сервер................................................ Администратор этапа выполнения............................. Разработка прикладных программ DOS защищенного режима...... Надежное программирование в защищенном режиме.............. Загрузка в сегментные регистры недопустимых значений....... Функция Ptr и массивы Mem.................................. Абсолютные переменные...................................... Операции с сегментами...................................... Использование сегментных................................... Доступ к памяти вне границ сегмента........................ Запись в сегмент кода...................................... Разыменование указателей nil............................... Сегменты кода и данных..................................... Управление динамически распределяемой памятью.............. Предопределенные селекторы................................. Переменная SelectorInc..................................... Модуль WinAPI.............................................. Управление памятью......................................... Подпрограммы управления памятью API........................ Управление модулем......................................... Управление ресурсами....................................... Управление селектором...................................... Другие подпрограммы API.................................... Прямой доступ к DPMI-серверу............................... Компиляция прикладной программы защищенного режима......... Выполнение программы защищенного режима DOS................ Управление объемом используемой RTM памяти................. Глава 18. Строки с завершающим нулем....................... Что такое строка с завершающим нулем?...................... Функции модуля Strings..................................... Функции модуля Strings..................................... Использование строк с завершающим нулем.................... Символьные указатели и строковые литералы.................. Символьные указатели и символьные массивы.................. Индексирование символьного указателя....................... Операции с символьными указателями......................... Строки с завершающим нулем и стандартные процедуры......... Пример использования функций с завершающим нулем........... Глава 19. Использование графического интерфейса Borland.... Драйверы................................................... Поддержка устройства IBM 8514.............................. Система координат.......................................... Текущий указатель.......................................... Текст...................................................... Графические изображения и их виды.......................... Области просмотра и двоичные образы........................ Поддержка страниц и цветов................................. Обработка ошибок........................................... Начало работы.............................................. Пользовательские программы управления динамически распределяемой памятью.................................... Процедуры модуля Graph..................................... Константы, типы и переменные модуля Graph.................. Константы.................................................. Типы....................................................... Переменные................................................. Глава 20. Использование оверлеев........................... Администратор оверлеев..................................... Управление оверлейным буфером.............................. Процедуры и функции модуля Overlay......................... Коды результата............................................ Разработка программ с оверлеями............................ Генерация оверлейного кода................................. Требование использования дальнего типа вызовов............. Инициализация администратора оверлеев...................... Разделы инициализации в оверлейных модулях................. Что не должно использоваться в качестве оверлеев........... Отладка оверлеев........................................... Внешние программы в оверлеях............................... Задание функции чтения оверлея............................. Оверлеи в файлах .EXE...................................... Часть III. В среде Borland Pascal.......................... Глава 21. Использование памяти............................. Использование памяти программами реального режима DOS...... Администратор динамически распределяемой области памяти DOS Методы освобождения областей динамически распределяемой памяти.................................................... Список свободных блоков.................................... Переменная HeapError....................................... Использование памяти в программах DOS защищенного режима... Сегменты кода.............................................. Атрибуты сегмента.......................................... Атрибуты MOVEABLE или FIXED................................ Атрибуты PRELOAD или DEMANDLOAD............................ Атрибуты DISCARDABLE или PERMAMENT......................... Сегменты данных и стека.................................... Изменение атрибутов........................................ Администратор динамически распределяемой области памяти DOS Переменная HeapError....................................... Использование памяти в программах Windows.................. Атрибуты сегментов......................................... Атрибуты MOVEABLE или FIXED................................ Атрибуты PRELOAD или DEMANDLOAD............................ Атрибуты DISCARDABLE или PERMANENT......................... Изменение атрибутов........................................ Сегмент локальных динамических данных...................... Администратор динамически распределяемой области памяти.... Переменная HeapError....................................... Форматы внутреннего представления данных................... Целочисленные типы......................................... Символьный тип............................................. Булевский тип.............................................. Перечислимый тип........................................... Типы с плавающей точкой.................................... Вещественный тип........................................... Тип числа с одинарной точностью............................ Тип числа с двойной точностью.............................. Тип числа с повышенной точностью........................... Сложный тип................................................ Значения типа указатель.................................... Значения строкового типа................................... Значения множественного типа............................... Значения типа массив....................................... Значения типа запись....................................... Объектные типы............................................. Таблица виртуальных методов................................ Таблица динамических методов............................... Значения файлового типа.................................... Процедурные типы........................................... Прямой доступ к памяти..................................... Прямой доступ к портам..................................... Глава 22. Вопросы управления............................... Соглашения по вызовам...................................... Параметры-переменные....................................... Параметры-значения......................................... Открытые строковые параметры............................... Результаты функций......................................... Ближние и дальние типы вызовов............................. Вложенные процедуры и функции.............................. Соглашения о вызовах методов............................... Вызовы виртуальных методов................................. Вызовы динамических методов................................ Конструкторы и деструкторы................................. Стандартный код входа и выхода............................. Соглашения по сохранению регистров......................... Процедуры выхода........................................... Обработка прерываний....................................... Разработка процедур обработки прерываний................... Глава 23. Автоматическая оптимизация....................... Свертывание констант....................................... Слияние констант........................................... Вычисление по короткой схеме............................... Параметры-константы........................................ Устранение избыточной загрузки указателей.................. Подстановка констант множественного типа................... Малые множества............................................ Порядок вычисления......................................... Проверка на допустимость границ............................ Использование сдвига вместо умножения...................... Автоматическое выравнивание на границу слова............... Удаление неиспользуемого кода.............................. Эффективная компоновка..................................... Часть IV. Использование Borland Pascal с языком ассемблера. Глава 24. Встроенный ассемблер............................. Оператор asm............................................... Использование регистров.................................... Синтаксис операторa ассемблера............................. Метки...................................................... Размер инструкции RET...................................... Автоматическое определение размера перехода................ Директивы ассемблера....................................... Операнды................................................... Выражения.................................................. Различия между выражениями Паскаля и ассемблера............ Элементы выражений......................................... Константы.................................................. Числовые константы......................................... Строковые константы........................................ Регистры................................................... Идентификаторы............................................. Классы выражений........................................... Типы выражений............................................. Операции в выражениях...................................... Процедуры и функции ассемблера............................. Глава 25. Компоновка с программами на языке ассемблера..... Турбо Ассемблер и Borland Pascal........................... Примеры программ на языке ассемблера....................... Методы на языке ассемблера................................. Включаемый машинный код.................................... Операторы Inline........................................... Директивы inline........................................... |