Re[5]: [ANN] IronText Library - парсинг, DSL, PL
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.09.13 15:04
Оценка:
Здравствуйте, Sucaba, Вы писали:

S>Все примеры работают по 1. Более того, для релиза вы можете склеить ваш DLL с

S>.Derived.dll c помощью MergeDerived.exe:
S>$> <nuget-package-path>\tools\net40\MergeDerived.exe <full-path-to-your dll>

ILMerge то чем не подошел, что ты отдельный утиль сделал?

AVK>>Тесты это понятно. Вопрос в другом — есть ли релизные коммерческие проекты, которые его используют или пока что идет активная разработка?

S>Я сделал анонс проекта вчера утром. Вряд ли кто-то уже успел сделать релизный коммерческий проект

Кроме тебя, разумеется
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[8]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 14.09.13 15:29
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Sucaba, Вы писали:


S>>Как я уже сказал, я работаю над парсером MSIL.


AVK>В смысле? MSIL же бинарный с тривиальной структурой, чего там парсить то? Или ты имеешь в виду IL Assembler? Так он же очень примитивный, там и парсить то особо нечего.


А ВЫ уверены?) Лично мне не кажется что грамматику на полторы тысячи строк можно назвать простой.
Вы правы только в той части, что в языке отсутствуют арифметические выражения типа того же калькулятора,
в остальном же — это язык более функциональный чем c#.
В прочем, судите сами: http://www.ecma-international.org/publications/standards/Ecma-335.htm

S>>поверхностно. Например, что вам скажет скорость работы c# парсера если вы хотите написать

S>>парсер лога?

AVK>Парсер лога??? Я что то не припоминаю ни одного лога, который нельзя было бы отпарсить регексом. Т.е. это ты только лексер протестируешь. А уж GLR на фоне этого, как термоядерная бомба на фоне травматического пистолета.


Никто не говорил о использовании GLR для лог-парсера. Он, кстати, используется только для
недетерминистических грамматик. У вас может быть язык, у которого
синтаксис тривиален, зато лексические правила с наворотами. Посмотрите пример
с вложенными коментариями.
И не факт, что регекспы-удобнее (правда они всегда под рукой).

--
Sucaba
Re[6]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 14.09.13 15:35
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Sucaba, Вы писали:


S>>Все примеры работают по 1. Более того, для релиза вы можете склеить ваш DLL с

S>>.Derived.dll c помощью MergeDerived.exe:
S>>$> <nuget-package-path>\tools\net40\MergeDerived.exe <full-path-to-your dll>

AVK>ILMerge то чем не подошел, что ты отдельный утиль сделал?


По техническим причинам проще было создать и использовать свою чем тянуть еще одну зависимость.
Кроме того, в будущем намечаються проблемы с подписанными-сборками. Поэтому нужен контроль
над ситуацией.
Там порядка ~100 строк простого кода. Мелочь, по сравнению с остальным.

--
Sucaba
Re[9]: [ANN] IronText Library - парсинг, DSL, PL
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.09.13 23:13
Оценка:
Здравствуйте, Sucaba, Вы писали:

S>А ВЫ уверены?) Лично мне не кажется что грамматику на полторы тысячи строк можно назвать простой.


Это чего ж там такого есть, что аж полторы тысячи то? А то у меня целый SQL DML влез в 1340 строк с комментариями и семантикой.

S>в остальном же — это язык более функциональный чем c#.


В чем конкретно он более функциональный в плане синтаксиса?

S>В прочем, судите сами: http://www.ecma-international.org/publications/standards/Ecma-335.htm


Я читал этот стандарт, там много всего, а Part II так читал несколько раз. Что конкретно я должен там увидеть?

S>Никто не говорил о использовании GLR для лог-парсера. Он, кстати, используется только для

S>недетерминистических грамматик.

IL asm такой? Или GLR только тестами проверялся?

S>И не факт, что регекспы-удобнее (правда они всегда под рукой).


Да дело то не в удобстве, просто лексеры сейчас никого особо не волнуют.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[10]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 15.09.13 02:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Это чего ж там такого есть, что аж полторы тысячи то? А то у меня целый SQL DML влез в 1340 строк с комментариями и семантикой.


Это без семантики, коментариев и лексера.
Все тоже что и в c# + дополнительные низкоуровневые возможности
вроде JMP, tail-call, глобальные методы и т.д.

AVK>Я читал этот стандарт, там много всего, а Part II так читал несколько раз. Что конкретно я должен там увидеть?


Тогда, думаю, вы заметили грамматику в конце документа.
Она устаревшая, но там нетрудно найти ответы на ваши вопросы.

S>>Никто не говорил о использовании GLR для лог-парсера. Он, кстати, используется только для

S>>недетерминистических грамматик.
AVK>IL asm такой? Или GLR только тестами проверялся?

IL asm грамматика, которую я использую, такая. Хотя можно было обойтись LALR1.

--
Sucaba
Re[11]: [ANN] IronText Library - парсинг, DSL, PL
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.09.13 09:22
Оценка:
Здравствуйте, Sucaba, Вы писали:

S>Все тоже что и в c#


Что значит тоже? Там есть лямбды, вывод типов, linq запросы, 100500 конструкций инициализации и т.п.?

S> + дополнительные низкоуровневые возможности

S>вроде JMP, tail-call, глобальные методы и т.д.

При чем тут это? Как "JMP, tail-call, глобальные методы" влияют на синтаксис?

AVK>>IL asm такой? Или GLR только тестами проверялся?

S>IL asm грамматика, которую я использую, такая.

... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[12]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 15.09.13 11:08
Оценка: 5 (1)
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Sucaba, Вы писали:


S>>Все тоже что и в c#

AVK>Что значит тоже? Там есть лямбды, вывод типов, linq запросы,
...
AVK>При чем тут это? Как "JMP, tail-call, глобальные методы" влияют на синтаксис?

AndrewVK, грамматика (для .Net 1.0) в конце документа — там
размер, синтаксис и причины. Посмотреть быстрее, чем тратить
время на мыло

AVK>100500 конструкций инициализации и т.п.?


В спецификации c# 5.0 грамматика занимает только 1500 строк ...

AVK>>>IL asm такой? Или GLR только тестами проверялся?

S>>IL asm грамматика, которую я использую, такая.

AVK>


Языки могут представляться более чем одной грамматикой.
Выбор грамматики — это вопрос удобства, производительности и т.д.
Грамматику языка можно выбрать так, что она перестанет быть детерминированной
для LALR1 алгоритма. Другими словами, в таблице парсера будут конфликты.

--
Sucaba
Re[13]: [ANN] IronText Library - парсинг, DSL, PL
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.09.13 14:53
Оценка:
Здравствуйте, Sucaba, Вы писали:

S>AndrewVK, грамматика (для .Net 1.0) в конце документа — там

S>размер, синтаксис и причины. Посмотреть быстрее, чем тратить
S>время на мыло

Я может неправильно выразился, но я эту грамматику видел, отсюда и вопросы. В самом стандарте грамматика занимает 22 странички (494-515) формата А5 крупным шрифтом, с большими полями, разбивкой между параграфами, заголовками, комментариями и примерами. А если выкинуть из грамматики явное перечисление стандартных типов, заменив на дискриминант в семантике, то она еще ужмется. Да то что останется имеет такой размер в основном потому что очень много всяких флажков и модификаторов, являющихся ключевыми словами, а по структуре грамматика весьма примитивна.

AVK>>100500 конструкций инициализации и т.п.?

S>В спецификации c# 5.0 грамматика занимает только 1500 строк ...

Та грамматика, она довольно приблизительная.

S>Грамматику языка можно выбрать так, что она перестанет быть детерминированной


Можно, но зачем?
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[14]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 15.09.13 16:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Я может неправильно выразился, но я эту грамматику видел, отсюда и вопросы. В самом стандарте грамматика занимает 22 странички (494-515) формата А5 крупным шрифтом, с большими полями, разбивкой между параграфами, заголовками, комментариями и примерами. А если выкинуть из грамматики явное перечисление стандартных типов, заменив на дискриминант в семантике, то она еще ужмется. Да то что останется имеет такой размер в основном потому что очень много всяких флажков и модификаторов, являющихся ключевыми словами, а по структуре грамматика весьма примитивна.


Подозреваю что там упрощенная и старая версия для читабельности.
Вы можете найти почти-бизоновскую грамматику в SDK. Например у меня она здесь:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\asmparse.grammar"
В этом файле сами IL инструкции вынесли в отдельную таблицу (см. документ),
потому у меня получилось больше.
Кстати 1500 — это я на глаз считал. У меня отформатированная бизоно-подобная
грамматика заняла ~1200 строк для .Net 1.0. 300 строк я прикинул для новых версий.

Спорить о том, насколько сложен CIL синтаксис, если честно, влом. Он меньше и проще
чем c#, но в отличие от c#, он нужен и будет поддерживаться. Писать сложные
и ненужные вещи чтобы кого-то впечатлить — нет времени. Если появятся люди
желающие поучаствовать в IronText, то политику экономии времени можно будет
пересмотреть.

S>>Грамматику языка можно выбрать так, что она перестанет быть детерминированной

AVK>Можно, но зачем?

Я уже говорил, для удобства. В случае IronText — это возможность использовать
language-интерфейс также программно для генерации CIL кода + испытание GLR на практике.

В будущем планируется предоставить этот language-интерфейс пользователю для генерации
своего IL кода очень простым и удобным способом. Согласитесь, в серьезном фреймворке
для разработки языков возможность удобной работы с CIL немаловажна.

--
Sucaba
Re[14]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 15.09.13 16:34
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Я может неправильно выразился, но я эту грамматику видел, отсюда и вопросы. В самом стандарте грамматика занимает 22 странички (494-515) формата А5 крупным шрифтом, с большими полями, разбивкой между параграфами, заголовками, комментариями и примерами. А если выкинуть из грамматики явное перечисление стандартных типов, заменив на дискриминант в семантике, то она еще ужмется. Да то что останется имеет такой размер в основном потому что очень много всяких флажков и модификаторов, являющихся ключевыми словами, а по структуре грамматика весьма примитивна.


Подозреваю что там упрощенная и старая версия для читабельности.
Вы можете найти почти-бизоновскую грамматику в SDK. Например у меня она здесь:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\asmparse.grammar"
В этом файле сами IL инструкции вынесли в отдельную таблицу (см. документ),
потому у меня получилось больше.
Кстати 1500 — это я на глаз считал. У меня отформатированная бизоно-подобная
грамматика заняла ~1200 строк для .Net 1.0. 300 строк я прикинул для новых версий.

Спорить о том, насколько сложен CIL синтаксис, если честно, влом. Он меньше и проще
чем c#, но в отличие от c#, он нужен и будет поддерживаться. Писать сложные
и ненужные вещи чтобы кого-то впечатлить — нет времени. Если появятся люди
желающие поучаствовать в IronText, то политику экономии времени можно будет
пересмотреть.


S>>Грамматику языка можно выбрать так, что она перестанет быть детерминированной

AVK>Можно, но зачем?

Я уже говорил, для удобства. В случае IronText — это возможность использовать
language-интерфейс также программно для генерации CIL кода + испытание GLR на практике.

В будущем планируется предоставить этот language-интерфейс пользователю для генерации
своего IL кода очень простым и удобным способом. Согласитесь, в серьезном фреймворке
для разработки языков возможность удобной работы с CIL немаловажна.

--
Sucaba
Re[15]: [ANN] IronText Library - парсинг, DSL, PL
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.09.13 19:45
Оценка:
Здравствуйте, Sucaba, Вы писали:

S>В этом файле сами IL инструкции вынесли в отдельную таблицу (см. документ),

S>потому у меня получилось больше.

А в твоей грамматике, что, все инструкции перечислены? Нафига? Ну, собственно, тогда понятно откуда 1500 строк, больше вопросов не имею.

S>Он меньше и проще чем c#


Я бы сказал он кардинально проще.

S>Писать сложные и ненужные вещи чтобы кого-то впечатлить — нет времени.


Да дело то не во впечатлении, просто велик шанс что на грамматиках чуть посложнее вылезут серьезные проблемы.

S>>>Грамматику языка можно выбрать так, что она перестанет быть детерминированной

AVK>>Можно, но зачем?

S>Я уже говорил, для удобства.


Странное понимание удобства. Расписывать в грамматике правилами часто оказывается сильно сложнее, чем просто написать пару строк в семантике.

S>В будущем планируется предоставить этот language-интерфейс пользователю для генерации

S>своего IL кода очень простым и удобным способом.

А чем он будет принципиально удобнее компилятора expression tree?

S> Согласитесь, в серьезном фреймворке для разработки языков возможность удобной работы с CIL немаловажна.


Ну, как бы, есть тот же Microsoft.Cci.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[16]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 15.09.13 23:28
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну, как бы, есть тот же Microsoft.Cci.


Ну если он удобен ...

--
Sucaba
Re[17]: [ANN] IronText Library - парсинг, DSL, PL
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 16.09.13 04:24
Оценка:
Здравствуйте, Sucaba, Вы писали:

AVK>>Ну, как бы, есть тот же Microsoft.Cci.

S>Ну если он удобен ...

Да вполне. Он только документирован плохо. Но по примерам и документации к коду разобраться можно.
Re[18]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 16.09.13 11:21
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

AVK>>>Ну, как бы, есть тот же Microsoft.Cci.

S>>Ну если он удобен ...

МР>Да вполне. Он только документирован плохо. Но по примерам и документации к коду разобраться можно.


Лично я, ничего не имею против него. Просто, опять же, как и у Mono.Cecil
высокий порог сложности для среднестатистического .net-чика/проекта. А мене бы все же
хотелось пустить LOP в массы.
В данном случае для компиляции в .Net.

--
Богдан
Re[19]: [ANN] IronText Library - парсинг, DSL, PL
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 16.09.13 13:16
Оценка:
Здравствуйте, Sucaba, Вы писали:


S>Просто, опять же, как и у Mono.Cecil

S>высокий порог сложности для среднестатистического .net-чика/проекта.
У него он в целом высокий Даже для людей, уже имеющих некоторое представление о предмете вопроса.

S>А мене бы все же

S>хотелось пустить LOP в массы.
Удачи.
У меня самого в ближайшее время не предвидится ничего такого, что потребовало бы разработки DSL (или иных применений вашей разрботки), поэтому ничем толковым — а в первую очередь, я так понимаю, вам бы пригодилось тестирование и реальное использование, и как следствие, список пожеланий — помочь не смогу.
Re[20]: [ANN] IronText Library - парсинг, DSL, PL
От: Sucaba Украина kbohdan@mail.ru
Дата: 17.09.13 11:21
Оценка:
Здравствуйте, Михаил Романов, Вы писали:
a.org/wiki/Language-oriented_programming]LOP[/url] в массы.
МР>Удачи.
МР>У меня самого в ближайшее время не предвидится ничего такого, что потребовало бы разработки DSL (или иных применений вашей разрботки), поэтому ничем толковым — а в первую очередь, я так понимаю, вам бы пригодилось тестирование и реальное использование, и как следствие, список пожеланий — помочь не смогу.

На помощь я пока не рассчитывал, просто интересно было что опытные люди думают.

Спасибо всем за отзывы и особенно за критику, на данном этапе это важно.

--
Sucaba
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.