Документация

Документация по Модульному Рефалу разделена на две части: Руководство пользователя и Идиомы программирования.

В первой части рассказывается о том, что представляет из себя язык программирования Модульный Рефал (и его младший брат Простой Рефал), как пользоваться компилятором, как осуществляется взаимодействие с другими языками программирования… в общем о том, как можно программировать на Модульном Рефале.

Вторая часть посвящена идиомам программирования на Рефале, то есть приёмам программирования, кирпичикам более высокого уровня, чем примитивы самого языка (например, как осуществлять итерацию в языке без оператора цикла). В ней написано, как нужно программировать на Рефале (не обязательно Модульном или Простом).

Обе части можно считать относительно независимыми друг от друга. Опытный программист на Рефале может изучить только первую часть, чтобы узнать особенности конкретного диалекта и реализации. Программист, желающий развить навыки программирования на Рефале, может читать только вторую часть, даже если собирается программировать на другом диалекте.

Руководство пользователя
по Модульному и Простому Рефалам

  • Введение
  • Модульный Рефал
  • Простой Рефал
    • Синтаксис и семантика
    • Компиляция программ
    • Интерфейс с языком C++
  • Приложение А. Установка Модульного Рефала
Идиомы программирования на Рефале
  • Понятие идиомы в языке программирования
  • Идиомы программирования на подмножестве базисного Рефала
  • Специфические идиомы подмножества
    • Общие замечания о подмножестве базисного Рефала
    • Общие идиомы подмножества
      • Форматы функций
      • Имитация неуспешного выполнения
      • Ассоциативные списки и поиск по открытым e-переменным
      • Абстрактные типы данных
      • Вспомогательные функции
      • Остаточно-рекурсивные циклы
      • Имена функций
      • Автоматное программирование
      • Использование скобок в качестве указателей
      • Мультискобки
    • Идиомы, требующие указатели на функции
      • Сокрытие списков в списочных морфизмах
    • Идиомы, требующие вложенных функций
      • ООП
      • Монады
      • По следам COM-технологии
Эта работа пока не написана, можно почитать черновики: часть 1 и часть 2.