OberonCore
https://forum.oberoncore.ru/

Суперкомпиляция, Рефал, ФП
https://forum.oberoncore.ru/viewtopic.php?f=61&t=2682
Страница 2 из 2

Автор:  Geniepro [ Четверг, 10 Июнь, 2010 07:30 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Galkov писал(а):
Вот и суперкомпиляции проклевываться начинают с функциональных парадигм... Как бы ну очень эффективных в постановке задачи, но с большими проблемами в реализациях...

Проблем с реализацией функциональных языков не больше, чем с реализацией тех же С++ и Ады.

Автор:  Сергей Губанов [ Четверг, 10 Июнь, 2010 11:34 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов...

Автор:  Galkov [ Четверг, 10 Июнь, 2010 12:28 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Ну вот. А Рефал был задуман даже не как функциональный язык, а как язык метапрограммирования.
Типа: лепишь на ём интерпретатор - да хоть бы того же C++, запузыриваешь вторую проекцию к супер-компилятору (он имелся в виду с самого начала), а $100 миллионов - кладешь в карман :D

Осталось с BackEnd-ом чего-то зарешать... Но у них есть уже свой план действий (см картинку в "Устройство системы и проблемы"):
Глядишь, лет через 10-20 - и созреет :lol:

Автор:  Geniepro [ Четверг, 10 Июнь, 2010 12:37 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Сергей Губанов писал(а):
Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов...
Это вроде Интерсимоне сказал в одном из интервью, когда его спросили, будет ли Борланд делать среду программирования для OS/2.
Это было очень давно (середина 90-х), сейчас эти 100 млн баксов уже намного дороже стоят. Но и имелась в виду среда разработки, а не просто компилятор, стоимость изготовления которого ну максимум несколько процентов от стоимости изготовления всей среды.

Автор:  igor [ Четверг, 10 Июнь, 2010 13:19 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Сергей Губанов писал(а):
Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов...
А не бросить ли всё, и не заняться ли разработкой компиляторов для С++? :D
Цифра "потолочная".

Автор:  Geniepro [ Четверг, 10 Июнь, 2010 13:47 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

igor писал(а):
Сергей Губанов писал(а):
Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов...
А не бросить ли всё, и не заняться ли разработкой компиляторов для С++? :D
Цифра "потолочная".

Что значит "потолочная"?
Взятая с потолка? Да нет, Интерсимоне знал, что говорил.
Потолок цены? А Вы сможете сделать среду качества Visual Studio или C++ Builder за много меньшие деньги? Интересно. Когда займётесь этим?

Автор:  Сергей Губанов [ Четверг, 10 Июнь, 2010 14:28 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

> Цифра "потолочная"

А написание Windows Vista обошлось Микрософту в $6 миллиардов.

> стоимость изготовления которого ну максимум несколько процентов от стоимости изготовления всей среды

Мне кажется наоборот. И ещё мне кажется речь всё же шла только о компиляторе.

Автор:  Илья Ермаков [ Четверг, 10 Июнь, 2010 18:54 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Интерстроновский компилятор, видимо, вышел гораздо дешевле; но это и не удивительно - разница в оплате труда здесь и там...
Разложите эти 100 млн. на 5 лет - 20 млн. в год. Положим 10 - на з/п. На команду из 20-25 чел. (там и подкоманда разработки тестовых сюит, и т.п.). Уже совсем не-астрономически.

Автор:  igor [ Пятница, 11 Июнь, 2010 08:44 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Geniepro писал(а):
Когда займётесь этим?
Сразу же после получения предоплаты 50% от указанной суммы :D .

Автор:  Geniepro [ Пятница, 11 Июнь, 2010 10:04 ]
Заголовок сообщения:  Re: Правильное повторное (не)использование

Илья Ермаков писал(а):
Представьте, что у Вас есть программа на ФЯ, а Вы берёте и делаете каждую функцию динамически меняющей своё поведение (переключение реализаций и т.п.). В системных задачах это очень важно; не говоря про реальные производительные вычисления. Т.е. при некотором стиле ОО-программирования ФП окажется просто его статической заморозкой. Чистый же ФЯ своей статичностью мешает решению архитектурных задач.

Думаю, эта проблема может быть достаточно легко решена удобным, а потому широко распространённым в ФП, использованием полиморфизма.
В конце концов, ведь даже в оберонах Вы умудряетесь использовать полиморфные структуры данных и алгоритмы их обработки при том, что обероны для этого малопригодны (по сравнению с ФЯ).

Автор:  Илья Ермаков [ Пятница, 11 Июнь, 2010 10:30 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Должна быть возможность для этого самого узла вычислений (функции) иметь внутреннее состояние. Это только у математиков всё так просто - "чистая функция".

На деле у вас есть набор соединённых компонентов, через которые проходят потоки данных. И относительно этих потоков компоненты, при хорошем проектировании, ведут себя обычно "чисто функционально". Но это на локальных временных интервалах, а вообще, с другой частотой, они уже могут быть не совсем функциональными - их состояние периодически меняется (изменилась конфигурация, что-то переключили, пересоединили, и т.п.).
Такова реальность. Функциональность - хороший стиль, но она относительна.

Автор:  Geniepro [ Пятница, 11 Июнь, 2010 11:26 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Илья Ермаков писал(а):
(изменилась конфигурация, что-то переключили, пересоединили, и т.п.).
Те места, в которых время от времени может что-то поменяться, переключиться, пересоединиться -- должны быть локализованы. Если же их нельзя локализовать -- то как Вы будете управлять системой в такой ситуации? Она запросто выйдет из под Вашего контроля.

Автор:  Илья Ермаков [ Пятница, 11 Июнь, 2010 12:10 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

В системах есть перпендикулярные слои.

Для примера. Возьмите IDEF-диаграмму - у Вас к каждому функциональному узлу сверху подведены потоки управления.
Т.е. у каждого блока много ролей и фасадов. Функционально он выглядит одним образом, а архитектурно - другим, для того, чтобы он выполнял свои функции, к нему может быть подведено много коммуникаций с "заднего крыльца", и т.п.

Посмотрите Композиту - полезно. Это если нет желания почитать на теоретикосистемные темы.

Автор:  Geniepro [ Пятница, 11 Июнь, 2010 15:44 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Galkov писал(а):
Мне показалось, что не только "справа", но и из середины....
Недавно мне пришлось делать мелкую утилитку, где как раз к месту был бы такой паттерн-матчинг строки, при котором между искомыми символами были игнорируемые символы. К счастью для меня их количество было постоянным и небольшим, так что я тупо заигнорировал их в коде программы, но указал при этом их положение.
А вот если бы их количество было бы непостоянным, были бы проблемы -- пришлось бы отказаться от красивого декларативного паттерн-матчинга и воспользоваться банальным поиском подстрок.
Хотя вроде бы есть для Хаскелла какие-то библиотеки сложного разбора строк а-ля Рефал, предлагающие синтаксис, близкий к стандартному паттерн-матчингу, но их ещё искать надо, изучать...

Автор:  Galkov [ Пятница, 11 Июнь, 2010 16:52 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Ну вот видите :)

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

Ибо это именно то, чего не хватает, чтобы"среда HiAsm явилась панацеей, и вскоре все прочие средства и языки, как текстовые, так и графические вымерли в результате естественного отбора"
И пущай Евгений меня цитирует :lol:

Автор:  Geniepro [ Вторник, 15 Июнь, 2010 10:22 ]
Заголовок сообщения:  Re: Правильное повторное (не)использование

Илья Ермаков писал(а):
Представьте, что у Вас есть программа на ФЯ, а Вы берёте и делаете каждую функцию динамически меняющей своё поведение (переключение реализаций и т.п.). В системных задачах это очень важно; не говоря про реальные производительные вычисления. Т.е. при некотором стиле ОО-программирования ФП окажется просто его статической заморозкой. Чистый же ФЯ своей статичностью мешает решению архитектурных задач.

Если я правильно Вас понял, то Вы требуете от языка программирования/его реализации возможность динамической загрузки и выгрузки модулей с целью менять реализацию функционала этих модулей, так?

Имхо, не всегда это подходит для той или иной какой-то конкретной задачи, но тем не менее, понятно.

И Вы ставите в недостаток строго типизированным чистым функциональным языкам вроде Хаскелла отсутствие такой возможности, верно?

Ну, тем не менее даже для Хаскелла такую библиотеку (!!!) сделать вполне возможно:

hs-plugins, Dynamically Loaded Haskell Modules

Plugging Haskell In

plugins: Dynamic linking for Haskell and C objects

Автор:  Илья Ермаков [ Вторник, 15 Июнь, 2010 10:44 ]
Заголовок сообщения:  Re: Правильное повторное (не)использование

Geniepro писал(а):
Если я правильно Вас понял, то Вы требуете от языка программирования/его реализации возможность динамической загрузки и выгрузки модулей с целью менять реализацию функционала этих модулей, так?


Я просто уже не представляю, как без этого :)

Это Вы узко формулируете; когда "не плаваешь" - то трудно представить всех мелочей, вообще изменения дела, которые такая штука за собой влечёт.

Но даже если оставить саму по себе динамику: если язык её допускает, значит, система модульности и типизации более сбалансированная, простая и "разделённая" (вместо этих ваших "ортогональностей", когда можно всё тыкать всюду). Отсюда больше возможностей для варьирования реализаций интерфейсов; пусть даже это и не нужно в динамике.

Автор:  Илья Ермаков [ Вторник, 15 Июнь, 2010 10:50 ]
Заголовок сообщения:  Re: Суперкомпиляция, Рефал, ФП

Хм. А ветку-то попутал - думал, что это та, где я с Wlad2-ом беседую :)

А тут выше я имел в виду всего лишь, что физически (конструктивно, вычислительно) реализованная функция, в отличие от математической, может имеет состояние, иногда варьируемое. Просто в силу того, что мир так устроен.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/