                  РЕФАЛ-2. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ


    Система программирования РЕФАЛ-2 для IBM PC, PDP-11 и VAX-11

                      Руководство пользователя





                             Москва 1991



Алексей Юрьевич Алешин
Александр Геннадиевич Красовский
Сергей Анатольевич Романенко
Вячеслав Юрьевич Шерстнев

Система программирования РЕФАЛ-2 для IBM PC, PDP-11 и VAX-11.
Руководство пользователя

(c) А.Ю.Алешин, А.Г.Красовский, С.А.Романенко, В.Ю.Шерстнев


                         С о д е р ж а н и е

                     1. Описание входного языка
       Введение . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.1.   Назначение языка . . . . . . . . . . . . . . . . . . . . . 1-1
1.2.   Обрабатываемые данные  . . . . . . . . . . . . . . . . . . 1-1
1.3.   Функции  . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
1.4.   Переменные . . . . . . . . . . . . . . . . . . . . . . . . 1-7
1.5.   Рекурсивные функции  . . . . . . . . . . . . . . . . . . . 1-8
1.6.   Снятие неоднозначности при отождествлении  . . . . . . . . 1-9
1.7.   Спецификаторы переменных . . . . . . . . . . . . . . . . . 1-11
1.8.   Общая структура программы  . . . . . . . . . . . . . . . . 1-15
1.9.   Пустые функции . . . . . . . . . . . . . . . . . . . . . . 1-16
1.10.  Модули . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17
1.11.  Первичные функции  . . . . . . . . . . . . . . . . . . . . 1-18
1.12.  Копилка  . . . . . . . . . . . . . . . . . . . . . . . . . 1-19
1.13.  Статические и динамические ящики . . . . . . . . . . . . . 1-21

                   2. Описание библиотеки функций
       Введение . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2.1.   Функции ввода-вывода . . . . . . . . . . . . . . . . . . . 2-1
2.2.   Функции арифметики . . . . . . . . . . . . . . . . . . . . 2-1
2.3.   Функции лексического анализа . . . . . . . . . . . . . . . 2-2
2.4.   Функции для работы с символьными файлами . . . . . . . . . 2-2
2.5.   Функция порождения процесса  . . . . . . . . . . . . . . . 2-3
2.6.   Функции для работы с символами-метками . . . . . . . . . . 2-3
2.7.   Функции для работы с копилкой. . . . . . . . . . . . . . . 2-3
2.8.   Функции для работы со статическими и динамическими
       ящиками  . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.9.   Описание функций . . . . . . . . . . . . . . . . . . . . . 2-4

                      3. Интерфейс РЕФАЛа и Си
       Введение . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3.1.   Обработка ошибок . . . . . . . . . . . . . . . . . . . . . 3-1
3.2.   Представление выражений в памяти машины  . . . . . . . . . 3-1
3.3.   Доступ к полям звена из программы на Си  . . . . . . . . . 3-3
3.4.   Представление функциональных скобок в списковой памяти . . 3-6
3.5.   Представоение ящиков в списковой памяти  . . . . . . . . . 3-6
3.6.   Печать выражений . . . . . . . . . . . . . . . . . . . . . 3-7
3.7.   Процессы . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
3.8.   Общий блок REFAL . . . . . . . . . . . . . . . . . . . . . 3-8
3.9.   Инициализация и терминация РЕФАЛ-системы . . . . . . . . . 3-9
3.10.  Пространство списковой памяти и список свободных звеньев . 3-10
3.11.  Таблица состояния процесса . . . . . . . . . . . . . . . . 3-14
3.12.  Создание и уничтожение процессов . . . . . . . . . . . . . 3-16
3.13.  Запуск процессов . . . . . . . . . . . . . . . . . . . . . 3-18
3.14.  Примеры управления процессами  . . . . . . . . . . . . . . 3-19
3.15.  Сборка мусора  . . . . . . . . . . . . . . . . . . . . . . 3-21
3.16.  Динамический захват списковой памяти . . . . . . . . . . . 3-23
3.17.  Вызов программ на Си из РЕФАЛ-программ . . . . . . . . . . 3-24
3.18.  Написание первичных функций на Си  . . . . . . . . . . . . 3-25
3.19.  Примеры первичных функций на Си  . . . . . . . . . . . . . 3-27

              4. Трансляция и исполнение РЕФАЛ-программ
       Введение . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4.1.   РЕФАЛ-система на IBM PC  . . . . . . . . . . . . . . . . . 4-1
4.2.   Подготовка исходных текстов РЕФАЛ-программ . . . . . . . . 4-1
4.3.   Компиляция РЕФАЛ-программ  . . . . . . . . . . . . . . . . 4-2
4.4.   Исполнение РЕФАЛ-программ  . . . . . . . . . . . . . . . . 4-3
4.5.   Средства отладки . . . . . . . . . . . . . . . . . . . . . 4-4
4.5.1. Вызов подпрограммы отладки . . . . . . . . . . . . . . . . 4-4
4.5.2. Управление остановом . . . . . . . . . . . . . . . . . . . 4-4
4.5.3. Управление прокруткой  . . . . . . . . . . . . . . . . . . 4-5
4.5.4. Перехват останова по неотождествлению  . . . . . . . . . . 4-8

       Приложение А. Алфавитный список первичных функций
       Приложение Б. Алфавитный список процедур интерфейса
       Приложение В. Список использованных источников
