RE: Статус Рефала-


Subject: RE: Статус Рефала-
From: Andrey V Stolyarov (croco@croco.net)
Date: Thu Nov 15 2001 - 09:51:47 MSK


Добрый день.

On Wed, 14 Nov 2001, Alexander P. Konyshev wrote:

> Добрый вечер, Андрей!
>
> > год назад с сайта, я столкнулся с тем, что все функции вывода считают
> > своим долгом вставлять где можно и где нельзя переводы строки
> (особенно
> > это классно смотрится, когда программа предназначена для генерации
> кода и
> > система вставляет перевод строки в середине имени идентификатора).
> > Собственно, эту проблему я решил довольно быстро, отыскав в файле
> refio.c
> > константу LINELEN и изменив ее значение на 30000 (можно было сделать и
> > побольше, но там, как я понял, есть и буфера такого размера...). Но
> вот
> > обойтись без перекомпиляции транслятора я не смог. В том смысле, что
> не
> > нашел функций, которые бы позволяли производить обычный raw output без
> > выкрутасов.
>
> Я исправлял эту ситуацию в свое время, но похоже эта версия не вошла в
> релиз, который лежит на сайте (и потом с какого Вы сайта брали).

Вообще-то уже не помню. Помню, что задавал когда-то в этом списке вопрос о
том, как в Рефале обозначать спецсимволы, после чего мне и предложили
скачать ту версию, которая у меня сейчас. Слазив на www.refal.net, сходу я
там не нашел никаких указаний на каноническую версию компилятора.

Судя по news.txt, это VERSION-PZ-New 20.09.2000

А какая правильная и где ее надо брать? ;-)

> С другой стороны это можно обойтись просто дописыванием функции вывода в
> бибилотеку (это было бы намного проще и лучше).

Насчет "лучше" - это безусловно, но вот на тему "проще" я никак не могу
согласиться. Константу я в исходниках отыскал мгновенно, минут за пять.
А вот понять, как реализованы встроенные функции, я сходу не смог. Если бы
покопался, возможно, и понял бы. Пришлось бы еще изучать устройство
структур данных (на эту тему есть, конечно, bf.txt, но там написано NOTE:
This description is obsolete as of 11/13/1991. The new description is
forthcoming). В любом случае, транслятор бы пришлось пересобрать. А
видоизмененный транслятор, к тому же с сомнительными изменениями (мои
жалкие попытки приделать новую функцию, буде я их бы предпринял, иначе как
сомнительными изменениями называть было бы нельзя ;-) - так вот, такой
сомнительный результат использовать в качестве _эталона_ языка - это уже
слишком.

> > Вопрос у меня в связи с этим такой. Пробовал ли кто-нибудь
> когда-нибудь
> > использовать этот транслятор в "боевых условиях" и поддерживается ли
> он
> > кем-нибудь в настоящее время, или его следует забыть как страшный сон
> и
> > пользоваться чем-нибудь более "модным" типа Рефала-плюс (чего лично
> мне
> > очень бы не хотелось в силу специфики проекта).
>
> Я лично использовал в боевых условиях. Так же приходилось выводить в
> файл сгенерированную программу на Си. Полтора года назад я был тем
> человеком, кто поддерживал его (Рефал-5) и развивал. На текущий момент
> мне не известны люди, кто активно бы поддерживал его. Я сейчас работаю
> в одной комерческой организации, посему я Рефал-5 поддерживаю пасивно.
> К тому же в моих планах полностью переписать весь компилятор и
> runtime-часть Рефала-5 из-за давно созревших идей Андрея Немытых и моих.
> Работа пока движется не очень быстро, как хотелось бы.

Собственно, спасибо за ответ - это ровно то, что мне хотелось узнать. Во
всяком случае, Рефал-5 как диалект пока еще жив. Это радует.

> > Если транслятор уже unsupported, буду благодарен за рекомендации, что
> > взять вместо него.
>
> Лично я, очень даже за. По край ней мере мне нужен человек, с кем можно
> поделится проблемами :) и идеями их решения и кому это интересно.
> Могу помочь Вам быстрее понять организацию данных и их взаимодействие.

Откровенно говоря, у меня вряд ли получится поддерживать транслятор.
Помимо собственного проекта, подчистую съедающего все свободное время, у
меня есть еще и работа (а куда деваться в наше время...), так что в этом
плане я вряд ли чем-то лучше.

А в проекте, по замыслу, транслятор Рефала нужен только на этапе первичной
раскрутки. У меня есть (еще не до конца готовый) код на Рефале,
переводящий рефальский код в Си++ с использованием уже упоминавшейся тут
библиотеки классов, и в дальнейшем я предполагаю использовать результат
самоприменения этого кода совместно с компилятором Си++. Вот для
самоприменения мне транслятор и потребовался.

Конечно, с эффективностью у меня будет полный швах (ибо в моей библиотеке
рефал-выражения представлены односвязными списками из точечных пар, ровно
как в Lisp'е), но больших объемов рефальского кода не предвидится, а
процессоры нынче быстрые.

> > Вообще, можно ли считать диалект Рефал-5 живым? Очень хочется (мне
> именно
> > этот диалект нравится), но реальность, увы, не всегда совпадает с
> > желаниями.
> Считайте и Вы не один. Он живой. Конкретно он используется в
> построение серверных приложениях для Web.
>
> С уважением,
> Алексадр Конышев.
>
> P.S.: Сейчас я территориально нахожусь в Москве, если Вы тоже из Москвы,
> то мы может встретится и обсудить все вопросы, связанные с Рефалом-5.

О, это я с удовольствием.

С уважением,
Андрей Столяров



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD