Re[12]: Подводя итоги...
От: Ziaw Россия  
Дата: 19.02.11 17:46
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:

VD>>Статьи есть. Кто хочет, то пользуется гуглем. Например, вот
Автор(ы): Чистяков Владислав Юрьевич
Дата: 07.06.2011
Макрос PegGrammar – это макрос Nemerle, позволяющий добавлять в приложения парсеры, описываемые в нотации PEG.
или вот. Чтобы убедиться в крутости не надо даже статей читать. Качаешь инсталлятор и тратишь пол часа на эксперименты.

А>За ссылки спасибо, прочитал. Ничего революционного не увидел. Еще один антлр, только другой и на Н. На "... considered harmful" не тянет. А жаль.

Отвечаю не тебе, а просто, чтобы тот кто будет читать дискуссию не купился на очередное "ну что тут такого?". Плюсов по сравнению с Антлр достаточно.

Антлр не встроен в язык, все что он может — сгенерить достаточно неоптимальный код на C#. Отлаживать этот код удовольствие не из приятных. Делать AST за один проход в антлр достаточно проблематично, обычно там делают лексер, парсер и treeparser . Антлр не PEG, у него другая грамматика. AST получаемый антлром завязан как на парсер так и на антлр, в PEG мы создаем его сами.

Итак антлр проигрывает по скорости парсинга, объему кода, качеству получаемого AST, удобству отладки и интеграции в проект на .net. Единственная причина по которой можно использовать антлр — это вероятность разжиться готовой грамматикой. К сожалению все, что мне попадались были в полурабочем состоянии и AST подходил мне не совсем.

Для сравнения могу привести парсер json на PEG и на antrl3.
AST для antrl3 (все данные в Object) и для PEG, все строго типизировано.

Скорость я не сравнивал, только глядя на реализацию на антлр уже видны проблемы производительности.
Re[12]: Подводя итоги...
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.02.11 21:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>За ссылки спасибо, прочитал. Ничего революционного не увидел. Еще один антлр, только другой и на Н. На "... considered harmful" не тянет.


А, ну, да. Динамически расширяемый, безлексерный парсер работающий со скоростью лучших рукопашных реализаций — это, конечно, ничего нового. Ты такое за месяц своял бы на чем угодно.

А>А жаль.


+1
Жаль, что ты не потрудился разобраться.

VD>>Я одного не понимаю зачем разным прохожим с улицы ...

А>RSDN я читаю не первый год, и твой хамский тон не удивляет.

Я рад за тебя. Особо рад тому что ты пытаешься разбираться где хамство, а где нет. Жаль, что начинаешь с окружающих. Тебе было бы полезно начать с себя. Глядишь тогда и в словах окружающих не пришлось бы так часто хамство детектировать.

VD>> ... какие-то новые технологии? Вы же все равно их использвать не будете.

А>Только потому, что они новые? Нет, не будем.

Ну, так проходи мимо. Мнение ничем не интересующихся прохожих мало кому интересно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Подводя итоги...
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.02.11 23:15
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Для сравнения могу привести парсер json на PEG


Ссылку забыл дать.

Z> и на antrl3.


Особо порадовало, что для столь простой вещи пришлось применять семантические придикаты (т.е. "приседания"):
number    : n=Number {Pattern.matches("(0|(-?[1-9]\\d*))(\\.\\d+)?", n.getText())}?
        Exponent?
      -> ^(NUMBER Number Exponent?)
    ;
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.