Здравствуйте, c-smile, Вы писали:
CS>Входной язык бизона есть именно тот самый микс из синтаксическиъ метаопредений близких к Backus и Naur нотации *плюс* определения хост языка С или С++. Собственноо примерно то же что их себя представляет входной язык Nemerle.
Это, у меня BNF отдельно, код — отдельно. Код в грамматике ен прописывается, т.к., ИМХО, это криво.
CS>"как тоже самое" — что конкретно то же саме? Bison на Nemerle? CS>А зачем?
Нет, не Bison. Надо посмотреть ниже по ветке. Там представлен генератор лексера, написанный на макросах. Т.е. мы прописываем грамматику прямо в коде Nemerle. Сейчас я занимаюсь макросом, который генерит парсер. Может, через неделю-две будет готова первая версия.
Ну и второе основное отличие, как я уже сказал, код на Nemerle и описание грамматики не смешиваются.
CS>Я ничего не понял... чем это все принципиально лучше прогона файла граматики через Бизон и показа тех же ошибок в IDE или просто в консоли?
CS>На вот тебе http://blogs.msdn.com/devdev/archive/2005/09/13/465034.aspx статью про то как интегрировать Бизон в VS если так уж надо.
Эту штуковину для VS нужно было написать. А я ничего специально не писал.
CS>IDE для разаработки языков программирования? CS>... не, ну наверное кому-нибудь оно надо... ЯП-мазохистам например которые по языку в неделю выпускают. Но я таких даже и не знаю где искать.
А DSL?
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[9]: Являются ли макросы свидетельством недостаточной выра
Здравствуйте, FR, Вы писали:
VD>>>>Ничего они не позволяют решать. В Смолтоке используется самая поганая система метапрограммирования из известных человечеству — генерация исходного текста и компиляция его на лету. Метаклассы лишь приятный бонус инкапсулирующий паттерны вроде абстракных фабрик. Свми по себе метаклассы метапрограммирования не предоставляют.
ANS>>>Белая гарячка
VD>>у вас, маньяков? Несомненно. Вы же даже возразить аргументированно не умеете.
FR>Влад ты на самом деле бредишь, возражать на это бессмысленно.
Отличное подтверждение моих слов.
Лучше бы попробовал привести код генерирующий тело метода.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Являются ли макросы свидетельством недостаточной выра
Здравствуйте, FR, Вы писали:
FR>>>На C++ шаблонах такое пишется без проблем, используются ленивые вычиления, то есть выражение собирается в operator= скорость не уступает сишной.
VD>>Решение конечно на шаблонах с применением Буста?
FR>На шаблонах без буста. Я такой велосипед писал когда про буст еще не слышал.
Дык, изобрази... посмеемся вместе.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, eao197, Вы писали:
E>Принципиальная схема реализации отложенных вычислений в C++ изложена у Страуструпа в 3-м издании "Язык программирования C++" (Б.Страуструп, Язык программирования C++, спец. изд./Пер.с англ. — М.;СПб.:"Издательство БИНОМ" — "Невский Диалект", 2001г. — 1099с., ил.) Раздел 22.4.7 "Временные массивы, копирование и циклы", стр.743.
E>Без шаблонов и Буста.
Осталось без трепа изобразить решение.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
VD>>А в чем разница между ними и макросами? И почему тогда "макросы сакс", а "Rewrite Rules rulez", а?
L>Макросы генерят код по поименованному определению макроса. Это имя используется в коде для вызова макроса компилером.
Это ты домысливашь. Реально же макросы довольно гибкий инструмент и могут делать все что им угодно с кодом проекта (при этом в самом коде не присуствуя).
L>Рулесы делают трансформацию без поименований с уже имеющимися функциями. Компилер находит шаблоны и меняет их.
Но по сути же делается все тоже самое... Согласись...
Мы меняем код неочевидным для прикладного программиста образом. Все зло макросов, как я понимаю, приписывается именно этому свойству.
Как-то странно, что изменение названия и способа запуска сразу превращет зло во благо. А?
L>Допустим, x $ y z => x (y z) можно сделать макросом. L>А вот как сделать трансформацию map f . map g => map (f . g) макросом я не представляю.
Если есть код перебора выражений (а он есть), то достаточно найти нужный паттерн и заменить его другим.
L>Таким образом, с помощью рулесов можно писать обычный "красиво выглядящий" код с обычными функциями, которые трансформируется в оптимизированный.
Неубедительно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, deniok, Вы писали:
D>Rewrite Rules это способ явно записать указания компилятору для оптимизаций...
... позволяющий изменить до неузноваемости логику компилируемого кода. Да?
D> Это — открытый интерфейс оптимизатора конкретного компилятора, GHC, а не часть языка.
Так зачем тогда вообще говорить о частном решении?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
L>Ты о чём вообще? Мы говорили о конкретной задаче и как она решается. L>konsoletyper сказал, что не понимает устройство Parsec, я попытался дать основное, что в нём есть. L>При чём тут ассемблер и структурное программирование?
При том, что сегодня ФВП полноцено не поддерживаются разве что в С++. И эти тирады несколько смешны.
VD>>Насколько я помню на свете есть очень мало языков в которых макросы достигли своего апогея. Все эти языки, как один, являются фунциональными (Лисп, Темлэйт Хаскель, Немерле). Так зачем нас грузить ФП?
L>И?
И не надо нам сотый раз про это. Лучше бы дал прямой ответ на вопрос товарища. Мне вот тоже не ясно где там простота.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
L>Здравствуйте, VladD2, Вы писали:
L>>>Без проблем! Меняем названия на EBNF-ные.
VD>>На EBNF есть ISO-стандарт. Вот кода вы на Хаскеле его повторить сможете (ну, процентов так на 99 хотя бы), тогда можено будет поговорить. А пока тебе прийдется признать, что решение на Хаскеле не полноценно.
L>А в чём проблема? Я же сказал, что вплоть до переименования там подходит практически всё. (Практически, потому что цитировать стандарт не смогу, а лезть для сверки не хочу.) Мало того, есть дополнительные расширения.
Твои примеры на Парсеке не совместимы с ЕБНФ. Там то и дело грязь разная появляется.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
VD>>Тебе не кажется, что "очень близок" на практике означет "непохож"?
L>Нет.
Ну, тогда я тебе отрою тайну — это так.
VD>>Понимаеш ли в чем дело?... На макросах можно получить как раз тот синтаксис что тебе требуется. И делается это проще.
L>Да, для создания синтаксиса макросы практически незаменимы. Я это уже говорил. И?
И... не надо использовать для решения задач плохо подходящие для них средства. Нужен новый синтаксис? Так и нефига заниматься пуританством. Макросы видите ли бяка... надо найти другой способ. Макрос — это самый прямой способ. Другие дают сложные, неуклюжие и медленные решения.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
L>Ой сорри. Я имел в виду ByteString (Duncan Coutts, Don Stewart)
L>Начать можно отсюда: Data.ByteString L>Основная статья: Rewriting Haskell Strings
"Byte" означает то о чем я подумал, и Юникод Хаскелю незнаком?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Являются ли макросы свидетельством недостаточной выр
Здравствуйте, lomeo, Вы писали:
VD>>Кстати, хорошее предложение. Предлагаю пенисомерию. Сравниваем Parsec с лексером konsoletyper-а. VD>>На входе небольшой проект C#, на выходе количество токенов каждого типа в его файлах. VD>>Как предложение?
L>Неинтересно.
И я знаю почему...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Являются ли макросы свидетельством недостаточной выра
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, jazzer, Вы писали:
J>>Ты, Влад, возможно, не поверишь, но японцы суп именно так и едят, причем вместо вилки — палочки
VD>Дык они еще сепуку делают. Очень полезное занятие для всех кто не может есть ложкой.
Не вижу связи. Ты, вроде, говоришь об удобстве и эффективности? Так вот суп очень удобно есть палочками, проверено на собственном ежедневном опыте (например, сразу изчезает проблема, когда на дне тарелки остается кусочек чего-нибудь, и ты минут пять гоняешь его ложкой/вилкой по тарелке, пытаясь поддеть и отправить в рот). Макароны, кстати, тоже.
А все потому, что у палочек есть функция, которой нет у европейских приборов — хватательная. (С другой стороны — нет зачерпывательной функции.)
С европейскими приборами решений проблемы последнего куска три:
1. Использовать ручное управление: следить за тем, чтобы у тебя не оставалось кусков на дне тарелки (т.е. есть их пока достаточно жидкости).
2. Использовать костыль в виде куска хлеба. Тут мы тоже имеем вариант проблемы с первым решением — надо следить, чтоб осталось достаточно хлеба.
3. Использовать костыль в виде пальца/ножа/вилки/второй ложки.
Ну и радикальные: есть только супы-пюре; забить на этот последний кусок; нанять специально обученного человека, который будет следить, чтоб не кончалась жидкость/хлеб, а при необходимости — цапал этот кусок руками...
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, jazzer, Вы писали:
J>>С европейскими приборами решений проблемы последнего куска три: WH>А немного наклонить тарелку в голову не приходило?
В общем случае не поможет. Поможет только в случае катающегося или большого куска.
А если у тебя кусок вареной морковки, который только сдвинуть можно, потому что он прилипает ко дну...
А палочками ты просто цапаешь эти куски, не задумываясь.
И потом, "наклон тарелки" по отношению к программе... Мне навскидку аналогия не приходит.
Здравствуйте, VladD2, Вы писали:
L>>Неинтересно.
VD>И я знаю почему...
Да, да. Я помню, ты же у нас телепат.
Если серьёзно, то я не понимаю — зачем это тебе. Вроде взрослый человек, а занимается ерундой.
Ну, потратишь ты моё и konsoletyper'а время (или только моё, а? может тогда пусть на входе небольшой хаскель проект будет, чтобы вам тоже не скучать . Узнаешь, что bytestring-парсек на 14.73% медленнее или наоборот быстрее, и что?!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: Являются ли макросы свидетельством недостаточной выр