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 миллионов - кладешь в карман Осталось с BackEnd-ом чего-то зарешать... Но у них есть уже свой план действий (см картинку в "Устройство системы и проблемы"): Глядишь, лет через 10-20 - и созреет |
Автор: | Geniepro [ Четверг, 10 Июнь, 2010 12:37 ] |
Заголовок сообщения: | Re: Суперкомпиляция, Рефал, ФП |
Сергей Губанов писал(а): Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов... Это вроде Интерсимоне сказал в одном из интервью, когда его спросили, будет ли Борланд делать среду программирования для OS/2.Это было очень давно (середина 90-х), сейчас эти 100 млн баксов уже намного дороже стоят. Но и имелась в виду среда разработки, а не просто компилятор, стоимость изготовления которого ну максимум несколько процентов от стоимости изготовления всей среды. |
Автор: | igor [ Четверг, 10 Июнь, 2010 13:19 ] |
Заголовок сообщения: | Re: Суперкомпиляция, Рефал, ФП |
Сергей Губанов писал(а): Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов... А не бросить ли всё, и не заняться ли разработкой компиляторов для С++? Цифра "потолочная". |
Автор: | Geniepro [ Четверг, 10 Июнь, 2010 13:47 ] |
Заголовок сообщения: | Re: Суперкомпиляция, Рефал, ФП |
igor писал(а): Сергей Губанов писал(а): Начальник Борланда однажды сказал, что стоимость разработки компилятора С++ равна $100 миллионов... А не бросить ли всё, и не заняться ли разработкой компиляторов для С++? Цифра "потолочная". Что значит "потолочная"? Взятая с потолка? Да нет, Интерсимоне знал, что говорил. Потолок цены? А Вы сможете сделать среду качества 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% от указанной суммы .
|
Автор: | 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 явилась панацеей, и вскоре все прочие средства и языки, как текстовые, так и графические вымерли в результате естественного отбора" И пущай Евгений меня цитирует |
Автор: | 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/ |