Re[3]: Сравнение Рефала с другими языкам


Subject: Re[3]: Сравнение Рефала с другими языкам
From: Sergei M. Abramov (abram@botik.ru)
Date: Tue Mar 30 2004 - 09:25:21 MSD


Друзья!

> Можно спорить до посинения какой ложкой
> суп хлебать удобнее,
> но мне кажется , что Рефал-2 тексты имеют
> не меньшее право на публикацию,
> чем на Рефале-5/6. Хотя бы по историческим причинам.
...
> Кроме этого вспомните принципы ОККАМА "отсекай
> лишнее" и KISS "Keep it simple , stupid"
> "делай проще, тупица"

Не собираюсь спорить со сказанным. Но добавлю несколько тезизов:

(1) Сам рефал возник как метаязык, в деятельности, имеющей такой лозунг (по
поводу "отсекай лишнее"):

        -- надо сделать легким и удобным создание новых и новых языков и их
вариаций;
        -- малейшая неудовлетворенность в существующих языках должна
разрешаться легким созданием нового языка (диалекта).
        -- метаязыквоые средства (MST-средства) должны позволять легко
создавать новые языки программирования (в более широком плане: любые новые
формально-лингвистическеи модели реальности).

Почему все это не должно быть (само-)применимо к самому рефалу -- не
понятно. Больше рефалов -- хороших и разных ;-)

Правда, здесь всегда вспоминаю Андрея Климова: "все правильно, но прежде чем
будет <<много>>, надо чтобы был хотя бы один". Был -- в современном
понимании данного слова: удобный, надежный, обвешанный документацией и
инструментами (вспомним экранный отладчик). методичками и задачниками, в
красивой упаковке ;-)

(2) Для меня: Рефал-2 прекрасный диалект.

Мне он дорог тем, что в нем впервые реализовано некий подход к системе
"типизации" (спецификаторы), обладающеее доказанными и реализованными
красивыми свосйтвами (теоретикомножественные операции над спецификаторами).

Идеи следующих шагов к типизированному рефалу описан Арк. Климовым в одном
из писем в данном форуме (я его храню отдельно для будующих работ ;-)

> Именно этим Рефал-2 мне и понравился, хотя Рефал+
> тоже неплох, но в 2 раза поболе по исходным текстам.

(3) Рефал+ хорош тем, что сочинял его С.А.Романенко (конечно плюс Ко), автор
Рефала-2, понимающий разные подноготные всех диалетов.

Рефал Плюс замышлялся как система, на которой выразимы различные идеи и
операции (напрмер, КУД-оптимизации или МАКС-оптимизации) всех остальных
диалектов (да и самого Рефала Плюс).

Если угодно, Рефал Плюс минимален (это я про ОККАМ): это минимальное
замыкание рефалов относительно некоторых операций (односительно прогонки и
относительно упомянутых оптимизаций).

> Может поднимется кто-нибудь на написание переводчика
> Рефал-2 <-> Рефал-5\6 <-> Рефал+ ?

(4) Рискую быть куликом, нахваливающем свое болото.

Проект "Новая реализация Рефал Плюс" правильно назвать "унифицированная
многоплатформенная система для диалектов рефалов".

Для меня проект интересен тем, что:

    -- ядро системы:

            о оптимизаторы на входе и выходе;
            о ядро компилятора,
            о бэкенды и RTS-библиотеки;
            о правильный отладчик--я обсуждал его здесь вместе с Л.Белоусом
как-то...

все это едино для всех рефал-диалектов;

    -- диалекты описываются фронтендами (лексер+парсер со входного языка в
т.н. абстр. синт. рефала, который создан так, чтобы в него спокойно улеглись
бы Р-5,6 и Плюс, ну и Р-2 уложить не сложно...) и диалект-специфичными
рефал-библиотеками;

    -- бэкенды унифицированы -- это конверторы из некоторого абстр.
синтаксиса некоторого абстр. императ, языка в целевую архитектуру (которой
может выступать С++, Ява, Т++, C# или что-то иное, в том числе пригодное для
кластерных/GRID-архитектур).

    -- вся система написана на Рефале Плюс (только фронтэнд для Рефала-5
пишется на Рефале-5, к 22.04.2004 надеюсь завершат ;-), RTL-библиотеки -- на
языках целевой платформы, конечно.

> Может поднимется кто-нибудь на написание переводчика
> Рефал-2 <-> Рефал-5\6 <-> Рефал+ ?

    -- проект ведется как OpenSource (доступ к CVS открыт для всех
желающих), так сейчас некий китайский студент (под рук. А.П.Немытых)
завершает фронтэнд Рефал-5 ==> Абстр.Синт.

Есть несколько мест для обсуждения:

http://www.botik.ru/~abram/refal/ Две статьи (не обращайте внимание на
огрехи, с которыми стилевой файл обработал имена авторов и список
публикаций -- в отладке), скоро выйдут в печати:

(1) refal-plus.pdf -- общее описание проекта и системы: "Новый подход к
реализации системы программирования Рефал Плюс"

(2) pm.pdf -- новый подход к отождествлению -- "Компиляция в императивные
языки синтаксического отождествления языка Рефал"

http://skif.pereslavl.ru/skif/ далее: меню::Документация::Рефал Плюс

http://revenge.botik.ru/cgi-bin/twiki/view/Refaldevel/WebHome (хотя, может
быть, это видно только из Переславля? Не пробовал...)

Любые соображения и комментарии -- с благодарностью!

Удачи

С.



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