Стеллецкий В.

Рефал/2

  Ура! Сегодня, 30.05.2005, наконец появилась адаптированная к современным платформам Windows-(95/98/ME/NT/2000/XP) и UNIX (FreeBSD, Linux) реализация языка Рефал-2. Работа выполнена по открытой лицензии и свободно доступна для любых применений, включая коммерческое использование.
Подробности на рефал-сайте http://www.refal.net/~belous/refal2-r.htm (зеркало http://www.refal.org/~belous/refal2-r.htm ) .

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

Выполнение программы на рефале (интерпретатор)

Рефал - это просто! См. Пример программы на рефале

В настоящее время имеется три версии программы интерпретатора рефала:

 Программа интерпретатора рефала/2                  Автор: Стеллецкий В.
  (рабочая область 32760 звеньев                             14.11.2002)
  [несколько урезанная версия языка рефал/2 см. также http://www.refal.net] 
 Параметры (версий MS DOS и консольного приложения):
  1-й - имя файла программы "скомпилированной в форму интерпретации";
  2-й - (необяз.) имя входного файла для программы;
  3-й - (необяз.) имя файла "результата работы";
  4-й - (необяз.) номер шага начала прокрутки.
 Протокол работы и "печать" записываются в stdout
  (можно перенаправить в файл)

 Параметры версии неконсольного приложения:
  1-й - имя файла программы "скомпилированной в форму интерпретации";
  2-й - (необяз.) имя входного файла для программы;
  3-й - (необяз.) имя выходного файла для программы (вместо выходного потока);
  4-й - (необяз.) имя входного файла 2 для программы (вместо входного потока);
  5-й - (необяз.) имя файла "результата работы";
  6-й - (необяз.) номер шага начала прокрутки.
 Протокол работы и "печать" записываются в выходной файл (3-й параметр).
см. также Встроенные рефал-функции (машинные процедуры)
см. также Полезные рефал-функции (написанные на рефале)
см. также Компиляция исходного текста рефал-программы в форму удобную для интерпретации

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

Благодарности

Хочу выразить свою благодарность Топунову Владимиру Леонидовичу, который в конце 70-х годов прошлого XX-го века привлек меня к работе с этим замечательным языком программирования.

Хочу также выразить признательность Леониду Белоусу, предложившему включение моего сайта в число сайтов рефал-диаспоры и этим стимулировавшему существенное расширение его части посвященной Рефалу.

Не могу также не отметить Алексея Веденова и Сергея Романенко, знакомство с исходными текстами рефал-систем которых существенно облегчило выполнение этой реализации Рефал/2, избавив от страха непосильности задачи.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

История написания этой версии Рефала

В апреле-мае 1998, когда появились задачи с текстовой обработкой данных (формирование html-страниц для публикации библиотечных указателей в интернет), не найдя дистрибутива рефала в Интернет (сейчас есть Сервер Группы пользователей и разработчиков языка РЕФАЛ, не говоря уж о сервере Cодружества "РЕФАЛ/Суперкомпиляция"), написал на Turbo-C простенький интерпретатор языка сборки (скачать 5382 байта 06.05.98). Написал на Макро-ассемблере (командами определения данных) простенький компилятор исходного текста программы на язык сборки (скачать 8048 байт 06.05.98). И скомпилировал первую версию компилятора на язык сборки на самом же рефале (скачать 2396 байт 06.05.98). Далее в несколько итераций этот комилятор улучшил. [см. Базисный рефал и его реализация на вычислительных машинах (методические рекомендации). М.: ЦНИИПИАСС, 1977. - 258 с. (Фонд алгоритмов и программ для ЭВМ в отрасли "Строительство". Вып. V-40). ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

Компилятор в форму удобную для интерпретации

Компилятор в форму удобную для интерпретации, а точнее на язык сборки [см. Базисный рефал и его реализация на вычислительных машинах (методические рекомендации). М.: ЦНИИПИАСС, 1977. - 258 с. (Фонд алгоритмов и программ для ЭВМ в отрасли "Строительство". Вып. V-40). ] написан на самом рефале.
Скачать: программу (3998 байт), исходный текст (3976 байта)

Пример выполнения компиляции.
Если Вы сохранили Пример программы на рефале, например, под именем a.ref , то командные строки на компиляцию этой программы при помощи трех различных версий рефал-интерпретатора будут выглядеть так:

refal.exe refal.cm a.ref a.cm >a.1
refalb.exe refal.cm a.ref a.cm >a.1
refalw.exe refal.cm a.ref a.cm a.1
здесь refal.cm - компилятор рефала (в форме удобной для интерпретации);
a.ref - исходный текст компилируемой рефал-программы;
a.cm - результат компиляции;
a.1 - протокол выполнения - может содержать сообщения об ошибках компиляции. Для выявления возможных неточностей в работе компилятора в случае возникновения ошибки в копилируемом тексте после диагностического сообщения выдается Поле зрения рефал-машины на момент определения ошибки, и процесс компиляции завершается.
Ограничения реализации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

Новости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

Лицензия

Понравилась мне Лицензия Леонида Белоуса, да еще и принципа Open Source в отношении рефала я стал придерживаться по его инициативе... поэтому получилось очень похоже.

Копирайт c 2003 Василий Стеллецкий
Все права сохранены.

Разрешаются дальнейшие распространение и использование, как в исходном, так и в двоичном видах, с модификацией или без неё, при соблюдении следующих условий:

  1. Дальнейшие распространения исходного кода должны воспроизводить предупреждение из    предыдущего копирайта, указанный перечень условий и приведенный ниже отказ от обязательств и гарантий.
  2. Дальнейшие распространения в двоичном виде должны воспроизводить предупреждение из предыдущего копирайта, указанный перечень условий и последующий отказ в документации и/или в других материалах, предусматриваемых при дистрибутиве.
  3. Имя автора не может быть использовано при рекламировании либо при продвижении продуктов, полученных с помощью указанного программного обеспечения, без специального предварительного письменного на то разрешения.

ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ОНО ЕСТЬ'' БЕЗ ЛЮБЫХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ПРИБЫЛЬНОСТИ И ПРИМЕНИМОСТИ СО СПЕЦИАЛЬНОЙ ЦЕЛЬЮ.
НИ В КОЕМ СЛУЧАЕ АВТОР НЕ БУДЕТ НЕСТИ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, НАМЕРЕННЫЕ, ОБРАЗЦОВЫЕ ЛИБО ПРОИСТЕКШИЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ИСКЛЮЧАЯ, ПОСТАВКИ СУРРОГАТНЫХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ПРИМЕНИМОСТИ, ДАННЫХ, ИЛИ ПРИБЫЛЕЙ; ИЛИ НАРУШЕНИЕ БИЗНЕСА) И ВСЕ ЖЕ ОСНОВАННЫЕ НА ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, БУДЬ ТО КОНТРАКТ, СТРОГАЯ ОТВЕТСТВЕННОСТЬ, ИЛИ ГРАЖДАНСКО-ПРАВОВОЙ ДЕЛИКТ (ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ЧТО-ЛИБО ЕЩЕ) ВОЗНИКАЮЩЕЕ ПРИ ЛЮБОМ СЛУЧАЕ ЗА ПРЕДЕЛАМИ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ В СЛУЧАЕ ИЗВЕЩЕНИЯ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.