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