|
Часть 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 - если вам встретился символ, взятый в < >, напри-
мер,
|