Re: Evolution of programming languages Was: Об отсечениях внутри блока.


Subject: Re: Evolution of programming languages Was: Об отсечениях внутри блока.
From: Andrei Klimov (Andrei.Klimov@supercompilers.com)
Date: Tue Nov 28 2000 - 02:20:40 MSK


Сергей, добрый день!

> Добрый день!
>
> > AнК:
> > Также соглашусь с ним в вопросе, что SML более богатый язык,
> > чем Рефал Плюс (по числу понятий, считаемых штуками или
> > попугаями -- кто как хочет;-) -- именно поэтому я сейчас
> > делаю большой проект на SML-е, а не на Рефале.
> > ...
> > Однако, "богатство" языка надо считать, конечно, не "попугаями",
> > а сопоставляя языковые механизмы и понятия с *целями языка*.
>
> СР:
> Понятное дело... Но ведь я и не сказал, что SML - "хороший" язык, потому что
> в нем много всего! Наоборот, я похвалил его как раз за то, чего в нем нет. И
> рассуждал с точки зрения пользователя определенного типа: а именно, такого,
> который хочет строить свой мир из конструктора (поскольку мне самому это
> нравится). Но ведь такой способ работы устраивает не всех!
>
> Сергей

АнК:
Согласен, "конструктность" -- очень хорошая цель для языка!
(В скобках заметим: *одна из* целей).

С этой точки зрения введение откатов и откатных функций
в Рефал повышает его "конструктность".

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

Однако, откатность -- это лишь одно из колесиков Рефала Плюс.
Если откатность не нравится, надо ставить вопрос всерьез и по крупному:

    Достичь *тех же целей* без откатности!

Если кто-то сможет это сделать, это будет прекрасным
продолжением эволюции Рефала во "второй стадии".

Но сначала надо сформулировать хотя бы часть целей.
Это нетрудно, поскольку Сергей Романенко сделал это сам
10-15 лет тому назад (см. его препринт "Рефал-4..."):

    Сделать выразимым на самом языке те преобразования
    (разные оптимизации, прогонку и т.п.),
    которые до этого формулировались на других языках:
    "языке сборки", Рефал-графах и т.д.

И надо заметить, что эта "сумасбродная" цель была достигнута
в Рефале Плюс без разрушения многих других свойств Рефала!
"Язык сборки" и Рефал-графы тоже удовлетворяют этой цели,
но это (мягко говоря) уж очень другие языки.

А для чего это нужно? -- Назову 2 "мелочи" и одну "крупную цель".

"Мелочи", уже использованные на практике:

  - основные оптимизации делаются (в новой реализации Рефала Плюс --
    не так ли? -- обращаюсь к трем А: Абрамову, Андрею и Антону)
    в независимом как от входного языка, так и от выходного
    отображения виде -- на AS по терминологии Абрамова;
    (не говорю уж о том, что их можно разрабатывать, преподавать,
    строить теорию -- и все это в человеческом виде).

  - нет проблемы естественного преобразования выхода
    суперкомпилятора(Рефал-графов) в Рефал (Плюс):
    понятий достаточно, не нужно порождать вспомогательные функции и т.п.;
    (это использовалось 2 раза: мной в 90-м году для суперкомпилятора
    Турчина 90-го года и в этом году Антоном О. и Юрой К. для Scp4).

Крупная цель:

    Ребята, ну, мы ж все время говорим о метасистемном переходе
    и метавычислениях -- о том, что тексты на языке должны
    стать объектом преобразований! -- и чем легче, проще и
    выразимее это будет, тем...

Андрей.



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