Size: a a a

Compiler Development

2020 June 18

IK

Ivan Kochurkin in Compiler Development
Вот у бизона GPL лицензия а еще он не юзер-френдли походу, судя по сайту и отсутствию трекера.
источник

YS

Yaroslav Schekin in Compiler Development
Виталий Медоваров
В соседнем чате рекомендуют re2c+lemon как альтернативу которая быстрее/выше/сильнее)
Я так понимаю, что flex и bison — это реализации определённых подходов к lexing и parsing, с определённым (backwards-compatible) синтаксисом и т.п.
Т.е. наличие "альтернатив" и " быстрее/выше/сильнее" тут как-то мимо, IMHO.
источник

ВМ

Виталий Медоваров... in Compiler Development
ну у re2c и lemon похожий подход и похожий синтаксис, но не совместимый.
И надо понять какие цели у интересующегося, улучшить какой-то легаси парсер или выбрать тулзу для генерации парсера с нуля
источник

PS

Peter Sovietov in Compiler Development
RE2C действительно интересный инструмент, который достаточно активно развивается. Несколько лет назад вышла статья Юлии Трофимович на эту тему: http://re2c.org/2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf
источник

AT

Alexander Tchitchigi... in Compiler Development
Я бы, конечно, вообще на C/C++ компилятор/интерпретатор писать не стал, так что брал бы либо ocamllex/ocamlyacc, либо happy/alex, либо вообще комбинаторы парсеров. Или ANTLR на худой конец. 😊
источник

AT

Alexander Tchitchigi... in Compiler Development
Это если хочется всё руками делать, а не взять человеческий Spoofax. 😁
источник

I

Ilmir in Compiler Development
Raku же
источник

YS

Yaroslav Schekin in Compiler Development
Виталий Медоваров
ну у re2c и lemon похожий подход и похожий синтаксис, но не совместимый.
И надо понять какие цели у интересующегося, улучшить какой-то легаси парсер или выбрать тулзу для генерации парсера с нуля
flex — table-driven, re2c — нет. У flex более-менее фиксированный интерфейс lexer->parser, у re2c, опять-таки, нет. Ну и т.д. и т.п. в отношении lemon и bison.
источник

PS

Peter Sovietov in Compiler Development
Вообще, есть еще Ragel, разнообразные PEG/GLR- и прочие генераторы для C/C++. Пока нет реальной задачи любое обсуждение подобного инструмента будет беспредметным.
источник

ВМ

Виталий Медоваров... in Compiler Development
Alexander Tchitchigin
Я бы, конечно, вообще на C/C++ компилятор/интерпретатор писать не стал, так что брал бы либо ocamllex/ocamlyacc, либо happy/alex, либо вообще комбинаторы парсеров. Или ANTLR на худой конец. 😊
tree-sitter мне понравился ещё, описывать синтаксис на js весьма увлекательно и даже медитативно
источник

AT

Alexander Tchitchigi... in Compiler Development
Виталий Медоваров
tree-sitter мне понравился ещё, описывать синтаксис на js весьма увлекательно и даже медитативно
😁
Но на самом деле библиотека интересная, особенно в связке с Rust.
источник

A

Alex in Compiler Development
Ivan Kochurkin
А flex/bison вообще насколько активно развиваются? У них есть репозитории на гитхабе?
Флекс и бизон появились когда гитхабов ещё в планах не было (и не понятно зачем они им) :) У бизона какие-то разработки продолжаются, они улучшают взаимодействие с C/C++, они в целом они делают то что должны. И это хорошо, т.к. не нужно ломать улучшениями то что работает. Если интересно, можно почитать их список улучшений в новой версии: https://savannah.gnu.org/forum/forum.php?forum_id=9357
источник

PS

Peter Sovietov in Compiler Development
Кстати, у автора Ragel был еще очень амбициозный проект, по которому он диссертацию написал. Кто-нибудь сталкивался? :)
источник

IK

Ivan Kochurkin in Compiler Development
Alex
Флекс и бизон появились когда гитхабов ещё в планах не было (и не понятно зачем они им) :) У бизона какие-то разработки продолжаются, они улучшают взаимодействие с C/C++, они в целом они делают то что должны. И это хорошо, т.к. не нужно ломать улучшениями то что работает. Если интересно, можно почитать их список улучшений в новой версии: https://savannah.gnu.org/forum/forum.php?forum_id=9357
Если что-то было изначально, то так должно быть и всегда? У флекса, кстати, Гитхаб есть и лицензия BSD. Ну и не обязательно гитхаб, если и другие сервисы. Нужен чтобы привлекать новую аудиторию, все-таки социальные и технические средства на таких платформах развиты намного лучше, чем у устаревших форумов, где еще и интерфейс оставляет желать лучшего.
источник

TS

Timur Safin in Compiler Development
Ivan Kochurkin
Вот у бизона GPL лицензия а еще он не юзер-френдли походу, судя по сайту и отсутствию трекера.
Это у самого бизона gpl, но не у парсеров им генерируемых, которые можно встраивать в не open source
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Kochurkin
Если что-то было изначально, то так должно быть и всегда? У флекса, кстати, Гитхаб есть и лицензия BSD. Ну и не обязательно гитхаб, если и другие сервисы. Нужен чтобы привлекать новую аудиторию, все-таки социальные и технические средства на таких платформах развиты намного лучше, чем у устаревших форумов, где еще и интерфейс оставляет желать лучшего.
> Если что-то было изначально, то так должно быть и всегда?

Видимо, они считают, что это работает.

> Нужен чтобы привлекать новую аудиторию

Зачем им "новая аудитория"? ;)

> технические средства на таких платформах развиты намного лучше

Есть немало развитых и известных проектов, участники которых с Вами в этом совсем не согласятся.
источник

MM

Mikhail Maltsev in Compiler Development
Ivan Kochurkin
Если что-то было изначально, то так должно быть и всегда? У флекса, кстати, Гитхаб есть и лицензия BSD. Ну и не обязательно гитхаб, если и другие сервисы. Нужен чтобы привлекать новую аудиторию, все-таки социальные и технические средства на таких платформах развиты намного лучше, чем у устаревших форумов, где еще и интерфейс оставляет желать лучшего.
По поводу github vs savannah у них там свои соображения: https://www.gnu.org/software/repo-criteria-evaluation.html
источник

VK

Vladimir Kazanov in Compiler Development
Ivan Kochurkin
А flex/bison вообще насколько активно развиваются? У них есть репозитории на гитхабе?
они открыты, ими пользуется множество проектов, и они развиваются. Но это очень старые проекты, сохраняющие совместимость с еще более старыми проектами, поэтому для полностью новых разработок имеет смысл рассмотреть альтернативы.

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

IK

Ivan Kochurkin in Compiler Development
Про гитхаб я упоминал как о самом популярном, который у всех на слуху. Тем не менее далее я подмечал, что не гитхабом единым, по крайней мере ещё есть гитлаб.
источник

IK

Ivan Kochurkin in Compiler Development
Новая аудитория нужна чтобы проект не загнулся, если со старой что-то станет. К примеру, мы используем активно развиваемый .net обфускатор confuserex 2, который является форком заброшенного confuserex, который, в свою очередь, перекочевал на гитхаб с codeplex. Не думаю что он был бы так интересен, если бы застрял на codeplex.
источник