ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 1 Рабочая группа по языку программирования Modula-2 J P I Modula-2 Руководство пользователя 1987 Jensen & Partners International (J&P Intl.) Первая публикация 1987 Опубликовано в Великобритании Перевод с английского: А.С.Барышнев С.И.Киркоров И.В.Клоков Н.М.Кузьмич И.В.Соскин Соответствует системе М2 JPI версии 1.05. МИНСК - 1990 ПРАВА ПОЛЬЗОВАТЕЛЯ ================== Настоящим документом фирма J&P Intl. предоставляет пользователям неограниченные права на использование JPI Modula-2 компилятора и библиотек. Данное ПО может использоваться на любом компьютере при условии, что оно не будет устанавливаться на несколькиx компьютерах одновременно. Копии данного ПО вы можете делать только в целях либо загрузки в компьютер, на котором вы будете его использовать, либо для того, чтобы иметь максимум две резервные копии. Пользователь имеет право продавать программы, разработанные при помощи компилятора и библиотек данного пакета. Но пользователь не имеет права перепродавать какую-либо из частей исходных кодов библиотек. ГАРАНТИИ ======== J&P Intl. гарантирует, что приобретенные вами дискеты являются точными копиями исход- ных дисков и безоговорочно будет заменять бракованные копии в течение 60 дней после покуп- ки. J&P Intl. также настоящим документом отказывается от всех прочих гарантий, независимо от того, определены они явно либо только подразумеваются, включая без ограничений подразу- меваемые торговые гарантии, а также гарантии пригодности для любых специальных применений. J&P Intl. не несет ответствености за всевозможные повреждения, включая потерю работоспособ- ности. J&P Intl. оставляет за собой право изменять данный продукт в любое время без предвари- тельных извещений. ТЕХНИЧЕСКАЯ ПОДДЕРЖКА ===================== Для того, чтобы получить право на техническую поддержку, вы должны заполнить и отпра- вить по почте прилагаемую регистрационную карту, либо вызвать нас при помощи TechLine по телефонному каналу для того, чтобы зарегистрироваться. СОДЕРЖАНИЕ ========== 1. Введение...........................................7 Пакет JPI Modula-2...............................7 Как работать с данным руководством...............7 Соглашения о шрифтах...........................7 Структура......................................7 2. Введение в систему JPI Modula-2....................9 3. Начало............................................13 Содержимое дистрибутивных дисков................13 Система на жестком диске........................13 Система на двух флоппи-дисках...................14 Продолжение.....................................14 Если вы терпеливы.............................14 Если вы не любите читать руководства..........14 4. Выборочное изучение Modula-2......................15 Hello...........................................15 Пифагоровские вычисления........................16 Музыка..........................................17 Анаграмма.......................................18 Головоломка.....................................23 Графика.........................................24 Сортировка......................................26 Калькулятор.....................................29 5. Среда JPI Modula-2................................34 Установка среды.................................35 Система помощи (Help)...........................35 Строки подсказок.............................35 Система меню....................................36 Перемещения по меню..........................36 Клавиши Кратчайшего Пути.....................38 Окна в среде....................................39 Изменение окон...............................40 Окна диалога с пользователем.................41 Меню файлов.....................................44 Загрузить файл...............................44 Выбрать файл.................................44 Сохранить файл...............................45 Сохранить все файлы..........................45 Главный модуль...............................45 Изменить каталог.............................45 Каталоги файлов..............................45 Оболочка ДОС.................................46 Выполнить....................................46 Выйти........................................46 Редактор........................................47 Система меню редактора.......................47 Загрузка файла...............................48 Сохранение файла.............................49 Перемещение между окнами редактора...........50 Команды редактора............................50 Компиляция и запуск программ....................56 Компиляция...................................56 Главный модуль...............................57 Построить программу..........................57 Запуск программ..............................58 Компоновка программы.........................60 Меню опций......................................61 Опции компилятора............................61 Опции компоновщика...........................62 Опции запуска................................63 Опции редактирования.........................64 Опции установки..............................65 Построить все................................65 Информационное окно.............................66 Файл переназначений.............................66 Пакетный компилятор и компоновщик...............67 Настройка меню..................................67 Изменение типа Главного меню.................68 Изменение текста меню........................68 Изменение дерева меню........................69 Изменение клавиш Кратчайшего Пути............69 Внешние команды ДОС..........................70 Клавиши меню и редактора.....................70 Изменение строк подсказок....................70 Формат файла определения меню...................71 Директивы меню...............................71 Определение меню.............................73 Настройка сообщений об ошибках..................77 6. Описание языка....................................79 О текстах.......................................79 Лексемы......................................79 Синтаксис....................................81 Объявления и область действия...................82 Типы............................................83 Числовые типы................................84 Перечислимые типы............................84 Типы-диапазоны...............................85 Типы множеств................................85 Типы массивов................................86 Типы записей.................................86 Типы указателей..............................87 Совместимость типов..........................88 Объекты и значения..............................89 Константы....................................90 Значения множеств............................90 Назначения...................................91 Выражения.......................................92 Операторы.......................................94 Оператор присваивания........................94 Оператор IF..................................95 Оператор CASE................................95 Оператор WHILE...............................96 Оператор REPEAT..............................96 Оператор LOOP................................96 Оператор FOR.................................97 Оператор WITH................................97 Оператор GOTO................................98 Процедуры.......................................98 Тела.........................................99 Вызов процедур..............................100 Типы процедур...............................102 Предопределенные процедуры..................102 Модули.........................................104 Вспомогательные модули......................105 Импортирование..............................106 Локальные модули............................107 7. Компилятор.......................................108 OBJ-файл.......................................108 Представление данных...........................108 Соглашение о вызовах...........................110 Область стека...............................110 Передача параметров.........................111 Результаты функций..........................112 Опции (в командной строке).....................112 Директивы (в исходном тексте)..................113 Интерфейс с другими языками....................115 Сегменты, группы и классы...................116 Адресация элементов.........................117 Соглашения об именах........................117 Поддержка сопроцессора 8087....................118 Обработчики прерываний.........................118 8. Библиотека JPI-Modula-2..........................120 Введение.......................................120 Обзор библиотеки...............................121 SYSTEM......................................121 Asmlib......................................121 MATHLIB.....................................121 Str.........................................121 Lib.........................................122 Storage.....................................122 Process.....................................122 Graph.......................................122 FIO.........................................122 IO..........................................123 Window......................................123 FloatExc....................................123 Как пользоваться библиотечным Справочником...................................124 Модуль Str.....................................124 Общие строковые процедуры...................124 Процедуры преобразований....................127 Модуль Lib.....................................129 Сортировка..................................129 Генерация случайных чисел...................131 Процедуры среды.............................131 Операции над блоками памяти.................132 Процедуры ДОС...............................134 Адресная арифметика.........................136 Длинные переходы............................136 Обработка ошибок............................138 Другие процедуры............................139 Модуль Storage.................................141 Глобальные переменные в Storage.............141 Основные процедуры над динамической памятью.....................................141 Общие процедуры над динамической памятью.....................................142 Модуль SYSTEM..................................145 Низкоуровневые процессы.....................145 Прочие процедуры............................149 Модуль Process.................................150 Планировщик процессов.......................150 Сигналы.....................................151 Прочие процедуры............................152 Модуль MATHLIB.................................154 Обработка ошибок............................154 Процедуры преобразования....................156 Процедуры сопроцессора 8087.................157 Модуль FIO.....................................158 Глобальные переменные в FIO.................158 Обработка файлов............................159 Форматированный вывод.......................162 Форматированный ввод........................164 Обработка каталогов.........................165 Модуль IO......................................167 Глобальные переменные в IO..................167 Форматированный вывод.......................168 Форматированный ввод........................169 Базовые процедуры ввода.....................170 Переназначение..............................171 Модуль Graph...................................171 Константы...................................171 Графические процедуры.......................172 Модуль Window..................................173 Константы и типы окон.......................174 Управление окнами...........................175 Обработка координат.........................177 Процедуры вывода в окна.....................178 Поддержка мультипроцессного режима..........180 Окна-палитры................................181 Модуль FloatExc................................182 Список процедур................................182 Г Л А В А 1 ============ ВВЕДЕНИЕ ======== Пакет JPI Modula-2 ------------------ Пакет JPI Modula-2 - это законченная система разработки на языке Modula-2 с управляе- мой посредством меню средой, содержащей многооконный редактор, изящный высокоскоростной линкер, полностью автоматический построитель программ, оптимизирующий компилятор, генериру- ющий лучший код, чем любой другой существующий компилятор языков C, Pascal или Modula-2, встроенные возможности определения позиций ошибок как времени компиляции, так и времени ис- полнения, и многое другое. Помимо среды, вы можете приобрести библиотеки полезных утилит, например, полная система управления окнами, менеджер процессов с разделением времени, мощ- ный набор подпрограмм управления памятью, и полный набор подпрограмм ввода /вывода. JPI Modula-2 также предоставляет уникальное средство организации технической поддерж- ки, доступ к которому может быть организован через модем из среды. Утилита TechLine позво- ляет снизить трудоемкость разработки пользователями своих программ. Вы можете задавать вопросы на технические темы, получать ответы на них, а также прос- матривать заданные сообща вопросы и ответы на них без выхода из среды. КАК РАБОТАТЬ С ДАННЫМ РУКОВОДСТВОМ ================================== Соглашения о шрифтах -------------------- Ниже приведены правила использования в тексте различных шрифтов: Italics - используется для выделения слов; Bold Italics - используется для указания новых понятий; Typewriter - используется для указания текста, который может быть частью программы или который может быть командой ДОСу; Keys - если вам встретился символ, взятый в < >, напри- мер, |