я сейчас немножко странную вещь спрошу, но тем не менее
вот, скажем, есть задача — распарсить сорцы на каком-то кустарном языке программирования(он уже есть, менять не могу) и что-то там с результатом сделать.
какие тулзы популярны на рынке труда?
на hh.ru 3 вакансии с antlr, c parsec/fparsec/lex/yacc ноль.
вообще непопулярная,тема, да?
для других специализаций не стесняются по 200 тулзов выписывать, а тут вдруг скромность проснулась?
Здравствуйте, koenig, Вы писали:
K>я сейчас немножко странную вещь спрошу, но тем не менее K>вот, скажем, есть задача — распарсить сорцы на каком-то кустарном языке программирования(он уже есть, менять не могу) и что-то там с результатом сделать. K>какие тулзы популярны на рынке труда? K>на hh.ru 3 вакансии с antlr, c parsec/fparsec/lex/yacc ноль. K>вообще непопулярная,тема, да? K>для других специализаций не стесняются по 200 тулзов выписывать, а тут вдруг скромность проснулась?
Книгу Ахо и Ульмана нужно прочитать. Этот предмет на 3 курсе преподают, на пятом диплом пишут. Здесь можно найти спеца, кто все правильно сделает.
Здравствуйте, koenig, Вы писали: K>недостаточно заметно выделил, да?
Я думаю, что написание парсеров специфическая задача для АСУ ТП. Вы ищите человака с навыком написания парсеров. При мне пользовались lex и yacc. Этот человек как работал там так до конца жизни там и будет работать.
Может я не совсем вопрос понял, вы разве хотите сами писать парсер? Или ищете того, кто вам это сделает? У вас не совсем сленг понятный в вопросе.
E>Я думаю, что написание парсеров специфическая задача для АСУ ТП. Вы ищите человака с навыком написания парсеров. При мне пользовались lex и yacc. Этот человек как работал там так до конца жизни там и будет работать. E>Может я не совсем вопрос понял, вы разве хотите сами писать парсер? Или ищете того, кто вам это сделает? У вас не совсем сленг понятный в вопросе.
я хочу в этот раз воспользоваться чем-то популярным на рынке труда (чтобы руку набить), а не писать вручную, как я всегда делал.
кажется, только antlr пользуется (крохотным) спросом
Здравствуйте, koenig, Вы писали:
K>я сейчас немножко странную вещь спрошу, но тем не менее K>вот, скажем, есть задача — распарсить сорцы на каком-то кустарном языке программирования(он уже есть, менять не могу) и что-то там с результатом сделать. K>какие тулзы популярны на рынке труда?
Тебе шашечки (популярно) или ехать (что-то сделать)?
K>на hh.ru 3 вакансии с antlr, c parsec/fparsec/lex/yacc ноль K>вообще непопулярная,тема, да?
Да
K>для других специализаций не стесняются по 200 тулзов выписывать, а тут вдруг скромность проснулась?
Ну на самом деле тулзов, конечно, не как JS-фреймворков, но их есть.
Здравствуйте, koenig, Вы писали:
K>для других специализаций не стесняются по 200 тулзов выписывать, а тут вдруг скромность проснулась?
Не так уж много людей вообще умеют писать парсеры. Да и потребность эта встречается не слишком часто. Когда надо распарсить какую-нибудь фигню, типа логов, большинство людей выберет regexp'ы, а за более-менее серьезный синтаксис мало, кто возьмется.
Вообще, хорошие парсеры получаются, когда их пишут руками. В отличии от автоматически сгенерированных, к ним проще приделать вменяемую обработку ошибок (парсер, в идеале, должен не срываться из-за пропущенной точки с запятой, а ругаться как можно ближе к тому месту, где точка с запятой пропущена, и ехать дальше).
По времени написания, что руками, что на yacc'е получается довольно близко. Правда, если надо немного изменить понимаемый парсером язык, то в автоматически сгенерированном парсере это сделать легче, но при существенных изменениях эта разница не столь заметна.
Здравствуйте, koenig, Вы писали:
K>вот, скажем, есть задача — распарсить сорцы на каком-то кустарном языке программирования(он уже есть, менять не могу) и что-то там с результатом сделать. K>какие тулзы популярны на рынке труда?
Насчёт рынка труда не подскажу, а на КЫВТе популярна Nitra. Можно на ней написать.
Здравствуйте, koenig, Вы писали:
K>какие тулзы популярны на рынке труда? K>вообще непопулярная,тема, да? K>для других специализаций не стесняются по 200 тулзов выписывать, а тут вдруг скромность проснулась?
Непопулярная и несильно нужная.
Для существующих языков уже есть парсеры, разрабатывать новый — сомнительная затея.
Для описания предметной области лучше использовать eDSL или существующий скриптовый язык, чем писать новый.
Здравствуйте, gandjustas, Вы писали:
G>Непопулярная и несильно нужная.
Просто как-то так получилось, что в понимании обычного среднего кодера парсинг = регулярные выражения. Получается, естественно, хреново, но мыши все равно грызут кактус.
Здравствуйте, CoderMonkey, Вы писали:
CM>Здравствуйте, gandjustas, Вы писали:
G>>Непопулярная и несильно нужная.
CM>Просто как-то так получилось, что в понимании обычного среднего кодера парсинг = регулярные выражения. Получается, естественно, хреново, но мыши все равно грызут кактус.
Так получилось, что в большинстве случаев действительно "парсинг = регулярные выражения", потому что все более сложные сценарии уже реализованы в библиотеках.
G>Непопулярная и несильно нужная. G>Для существующих языков уже есть парсеры, разрабатывать новый — сомнительная затея. G>Для описания предметной области лучше использовать eDSL или существующий скриптовый язык, чем писать новый.
эх, если бы
куда не придешь — есть свой
кривой-косой и без дебаггера (не осилили), но на нем уже что-то написано
Здравствуйте, koenig, Вы писали:
K>так это ж всё экзотика с точке зрения рынка труда K>хотя любопытно, спасибо
Можешь еще PEG парсеры поискать. Парсят они не очень быстро, но зато порог вхождения у них не высокий (Ахо и Ульмана читать не прийдётся) и описанную граматику на PEG как правило довольно легко читать и поддерживать.
Мы были здесь. Но пора идти дальше. (с) Дуглас Коупленд, Рабы "Микрософт"
K>>так это ж всё экзотика с точке зрения рынка труда K>>хотя любопытно, спасибо
C>Можешь еще PEG парсеры поискать. Парсят они не очень быстро, но зато порог вхождения у них не высокий (Ахо и Ульмана читать не прийдётся) и описанную граматику на PEG как правило довольно легко читать и поддерживать.
спасибо
ну раз уж это повторяется
читал
сдал
нету проблемы сделать парсер, ваще нету. много раз делал.
есть проблема в процессе получить побочный профит в виде руки набитой в чём-то широко используемом.
пойду курить antlr, видимо
Здравствуйте, gandjustas, Вы писали:
G>Так получилось, что в большинстве случаев действительно "парсинг = регулярные выражения", потому что все более сложные сценарии уже реализованы в библиотеках.
Даже в простых сценариях, использовать регэксы — напрашиваться на проблемы.