Здравствуйте, FR, Вы писали:
FR>Здравствуйте, Sinclair, Вы писали:
S>>Здравствуйте, FR, Вы писали: FR>>>Тут более сильные утверждения звучали. Такие что объем работы по написанию более-менее сложного языка будет на ML подобных языках на порядок меньше чем на C++. Это явное заблуждение. S>>Это явная правда. Прототипирование компиляторов реально сложных языков делается ФП ровно потому, что это на порядок быстрее. Накидывают за пару месяцев proof of concept, а потом года три утаптывают этот concept в MSVC, потому как политика партии.
[исправление]
FR>С прототипированием согласен, любой высокоуровневый язык его сильно ускоряет. Но вот дальнейшая разработка от этого существенно не ускорится. FR>Просто представь себе что у тебя заказ на написания компилятора C++ на немерли. И большая часть преимуществ которые на самом деле есть при написании компилятора немерли на немерли (а главное из них не ПМ а удобство расширения компилятора) улетучится. Это очень похоже на Форт системы которые легко доводятся до очень высокоуровневых DSL но на них так же непросто, как и на других языках, написать не форт компиляторы.
Здравствуйте, FR, Вы писали:
FR>Кстати зря так написано код (второй форматированный вариант), вполне красиво и расширяемо написан, и вовсе не в сишном стиле.
Да, да. Выдерживай такой стиль.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Кстати зря так написано код (второй форматированный вариант), вполне красиво и расширяемо написан, и вовсе не в сишном стиле.
VD>Да, да. Выдерживай такой стиль.
Влад ты совсем ослеп, там же почти функциональщина, большая рекурсивная функция с практически паттерн матчингом, чуть подрихтовать совсем красиво будет
Здравствуйте, Sinclair, Вы писали:
S>Это явная правда. Прототипирование компиляторов реально сложных языков делается ФП ровно потому, что это на порядок быстрее.
Таки существует серебрянная пуля?
... << RSDN@Home 1.2.0 alpha rev. 693 on Windows Vista 6.0.6000.0>>
Здравствуйте, FR, Вы писали:
FR>Влад ты совсем ослеп, там же почти функциональщина, большая рекурсивная функция с практически паттерн матчингом, чуть подрихтовать совсем красиво будет
Да, я сосвсем ослеп. Мне там мерещатся готу, запихивание в одну строку по 5 операторов и много грязного кода.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>Это явная правда. Прототипирование компиляторов реально сложных языков делается ФП ровно потому, что это на порядок быстрее. Накидывают за пару месяцев proof of concept, а потом года три утаптывают этот concept в MSVC, потому как политика партии.
Бессмысленная надо признать политика. По сравнению с ОКамлом по скорости они ни фига не выиграют. А вот развитие компилятора будет сильно усложнено переписыванием на С++. Шарп и его разработка это четко демонстриуют. Они трудятся над фичами годами, а нам нужны дни чтобы их повторить. А если речь идет о прототипировании новых фич, то на С++ это вообще мрак.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FR, Вы писали:
FR>С прототипированием согласен, любой высокоуровневый язык его сильно ускоряет. Но вот дальнейшая разработка от этого существенно не ускорится.
Ага. Любой... у которого есть макросы и паттерн-матчинг. На поверку таких еденицы.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали:
S>>Это явная правда. Прототипирование компиляторов реально сложных языков делается ФП ровно потому, что это на порядок быстрее.
AVK>Таки существует серебрянная пуля?
Если под ней понимать наличие значительно более удобного интсрумента, то да. Но под серебрянной пулей (СП) понимают панацею. То есть единое и тотальное решение всех проблем. А такого конечно не бывает. В прочем об СП зачастую начинают те у кого других аргументов нет, а сказать что-то хочется (есть эдакое чувство несправедливости основанное только на своих ощущениях).
Сейчас, когда я попробовал писать комиляторый код на ООЯ и на языке с тем самым ПМ и макросами, у меня просто нет ни малешего сомнения, что во втором варианте сложность снижается не менее чем раз в 5. И на действительно сложном языке цифра в десятичный порядок соврешенно реальна.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
AVK>>Таки существует серебрянная пуля?
VD>Если под ней понимать наличие значительно более удобного интсрумента, то да.
Я под ней понимаю то, что понимал в Брукс в соответствующем эссе.
VD>В прочем об СП зачастую начинают те у кого других аргументов нет
Аргументы есть в соответствующем эссе Брукса.
... << RSDN@Home 1.2.0 alpha rev. 693 on Windows Vista 6.0.6000.0>>
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>С прототипированием согласен, любой высокоуровневый язык его сильно ускоряет. Но вот дальнейшая разработка от этого существенно не ускорится.
VD>Ага. Любой... у которого есть макросы и паттерн-матчинг. На поверку таких еденицы.
Фвп полноценные, вывод типов (или заменяющая динамика) важнее. Метапрограммирование и ПМ тоже хорошо но и без них вполне существенно все ускоряется.
Здравствуйте, FR, Вы писали:
FR>Фвп полноценные, вывод типов (или заменяющая динамика) важнее. Метапрограммирование и ПМ тоже хорошо но и без них вполне существенно все ускоряется.
Это все обязательно. Но со всем этим, но без ПМ и макросов один фиг будет в разы сложнее.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndreiF, Вы писали:
AF>Мне надо, чтобы за разумное время был разумный прогресс. А то судя по результатам поиска, работа началась минимум два года назад. А результаты где? Хоть какие-то?
А мне блин надо чтобы фундамент дома плитко покрыть, перед домом площадку тоже плиткой, на жену внимание обращать, на работе работать и прочее прочее прочее. Итого в день гдето часа полтора для себя посидеть за компом. А хочется ведь отдохнуть. На башорг залезть, новости почитать, сюда опятьже заглянуть, с друзьями в аське пообщаться....
Где уж тут результат.... Один только человек реально помогает. Остальные только ржать могут да указывать пальцем что мол не на том пишеш.
Здравствуйте, AndrewVK, Вы писали: AVK>Таки существует серебрянная пуля?
Я полагаю, что для узкоспециализированных областей — запросто.
Вот для построения учетно-аналитических систем паттерн матчинг, скорее всего, не будет ускорять работу в 10 раз. Потому что основные затраты уходят вовсе не на разбор конструкций.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, VladD2, Вы писали: VD>Бессмысленная надо признать политика. По сравнению с ОКамлом по скорости они ни фига не выиграют. А вот развитие компилятора будет сильно усложнено переписыванием на С++. Шарп и его разработка это четко демонстриуют. Они трудятся над фичами годами, а нам нужны дни чтобы их повторить. А если речь идет о прототипировании новых фич, то на С++ это вообще мрак.
Ну, я думаю, что Хейльсберга можно легко убедить в два хода:
1. Пишем компилятор С# 2.0 на Nemerle
2. Пишем компилятор C# 3.0 на Nemerle.
3. Показываем разницу между 1 и 2 и спрашиваем: "Андерс, а твоя команда так может?"
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
AVK>>Таки существует серебрянная пуля? S>Я полагаю, что для узкоспециализированных областей — запросто. S>Вот для построения учетно-аналитических систем паттерн матчинг, скорее всего, не будет ускорять работу в 10 раз. Потому что основные затраты уходят вовсе не на разбор конструкций.
В учетно-аналитических системах PM уже давно используется в виде rule engines (http://en.wikipedia.org/wiki/Rule_engine). Действительно, ОЧЕНЬ сильно упрощает работу, особенно для сложных правил. Еще помогает автоматический анализ на непротиворечивость и полноту.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Фвп полноценные, вывод типов (или заменяющая динамика) важнее. Метапрограммирование и ПМ тоже хорошо но и без них вполне существенно все ускоряется.
VD>Это все обязательно. Но со всем этим, но без ПМ и макросов один фиг будет в разы сложнее.
Для написания компилятора да ПМ очень сильно рулит. Но попробуй оставить только ПМ, без ФВП и вывода типов, сразу взвоешь
Здравствуйте, Sinclair, Вы писали:
S>Ну, я думаю, что Хейльсберга можно легко убедить в два хода: S>1. Пишем компилятор С# 2.0 на Nemerle S>2. Пишем компилятор C# 3.0 на Nemerle. S>3. Показываем разницу между 1 и 2 и спрашиваем: "Андерс, а твоя команда так может?" S>)
Откровенно говоря то, что он досих пор не поглядел просто на то как написан этот компилятор и что из себя представляет этот язык уже говорит об отношении к своему делу.
Компилятор Nemerle и так C# 5.0 сегодня. И если сравнить объем и понятность кода этих компиляторов то, все становится очевидно. Особенно впечатляют части вроде реализации делегатов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, VladD2, Вы писали: VD>>Бессмысленная надо признать политика. По сравнению с ОКамлом по скорости они ни фига не выиграют. А вот развитие компилятора будет сильно усложнено переписыванием на С++. Шарп и его разработка это четко демонстриуют. Они трудятся над фичами годами, а нам нужны дни чтобы их повторить. А если речь идет о прототипировании новых фич, то на С++ это вообще мрак.
S>Ну, я думаю, что Хейльсберга можно легко убедить в два хода: S>1. Пишем компилятор С# 2.0 на Nemerle S>2. Пишем компилятор C# 3.0 на Nemerle. S>3. Показываем разницу между 1 и 2 и спрашиваем: "Андерс, а твоя команда так может?" S>)
Подобная статистика есть для scala.
Summing up
Here are counts of non-comment lines of three compilers I was
involved with:
old scalac*
48,484 loc
new scalac**
22,823 loc
javac***
28,173 loc
Notes:
* Written in Pizza (30824 loc) and Scala (17660 loc),
Scala code was literally translated from Pizza.
** Written in Scala.
*** Pre-wildcards version of javac 1.5, written in Java.
This indicates that Scala achieves a compression in source code size of
more than 2 relative to Java.
... in javac, models contexts as maps from names to objects. This approach is subject to dynamic
typing and thus statically unsafe.
JaCo’s Context/Component design pattern uses a combination of an object repository and an abstract
factory to model contexts [33,34]. This pattern provides static type safety, but is associated with a
relatively high protocol overhead. For instance, JaCo’s 30000 lines of code include 600 lines of code
just for context definitions and more than 1200 lines of code for object factories, not counting the code
within the actual compiler components that use the contexts and the factories.
VD>Кстати, забавный факт. Компилятор Немерле, который в разы сложнее чем C# и даже С++ написан двумя человеками за время несоизмеримое со временем убитым МС на компилятор C#. А развитие его вообще несопоставимо по времени. На фичи которые МС тратит годы у разработчиков Немерла уходят дни. Понятно, что у разрабочиков МС много времени отедает выбор дизайна (и его тестирование), но как раз тестирование и усоряется когда ты можешь бдобавить фичу в язык за пол дня. В случае с компилятором Немрела фичи добавляют даже простые пользователи. Лично я добавил уже несколько фичь. И я не одинок в этом.