URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 121347
[ Назад ]

Исходное сообщение
"Выпуск генератора лексических анализаторов re2c 2.0"

Отправлено opennews , 22-Июл-20 10:14 
Состоялся релиз re2c 2.0, свободного генератора лексических анализаторов для языков C и C++. Проект re2c изначально был создан в 1993 году Питером Бамбулисом как экспериментальный генератор очень быстрых лексических анализаторов, отличающийся от других генераторов скоростью сгенерированного кода и необычно гибким пользовательским интерфейсом, который позволяет легко и эффективно встраивать анализаторы в существующую кодовую базу. С тех пор проект развивается сообществом и продолжает оставаться площадкой для экспериментов и исследований в области формальных грамматик и конечных автоматов...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=53408


Содержание

Сообщения в этом обсуждении
"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Fracta1L , 22-Июл-20 10:14 
> для языков C и C++

Мёртвым припарка


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 12:45 
Зато C самый быстрый, быстрее только ассемблер. Opera 12 парсит тяжелые html со списком пакетов репозитория гораздо быстрее Firefox. Никто с ней не сравнится в этом, даже Netsurf.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 10:15 
Ого, кто юзал, как оно?

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 12:41 
Не знаю, что за прога, но мне она понадобилась для сборки meson и прочего. Как и ccache (который гадит в ~/.ccache, не перепутать с ~/.cache).

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Олег , 23-Июл-20 15:11 
Я юзал. Норм.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 23-Июл-20 23:11 
И что они анализируют? И с какой целью?

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Cradle , 24-Июл-20 00:53 
легковесные регекспы с интересными дополнениями, мне например в ембеддовке пригодится протоколы парсить

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 26-Июл-20 14:18 
Бинарные выражения тоже понимает? Можно скажем SMB описать?

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Повидло19 , 22-Июл-20 10:26 
> Старая система сборки на Autotools продолжает поддерживаться и использоваться, и в обозримом будущем нет планов от неё отказаться (отчасти чтобы не создавать проблем разработчикам дистрибутивов, отчасти потому что старая система сборки стабильнее и лаконичнее новой).

Вот и ответ.


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 10:59 
Это отсебятина переводчика.

>CMake build system. Thanks to ligfx for adding a CMake-based build system. This has been discussed multiple times in the past, and a few attempts at an implementation have been made, but ligfx was the first to contribute a full working implementation. The existing Autotools-based build system continues to be used and maintained for the foreseeable future.


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено skvadrik , 22-Июл-20 11:19 
На самом деле это комментарий от автора (он же переводчик и разработчик обеих систем сборки). В оригинальной новости этого пояснения действительно нет.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено freehck , 22-Июл-20 12:34 
Не будь такой скромной. =)
Ты делаешь классное дело. Хорошая работа, Улюша! Так держать! =)
PS: новая мажорная версия -- это своего рода рубеж, так что поздравляю

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено skvadrik , 22-Июл-20 22:58 
Спасибо. :)

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Cradle , 22-Июл-20 10:34 
спасибо, не знал про этот проект, буду использовать

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 11:04 
Чем это лучше фронтенда от LLVM?

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Cradle , 22-Июл-20 11:49 
а что, к llvm есть фронтенд для трансляции регекспов в конечные автоматы  по ходу программы, не влияя на остальной код?

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 11:19 
Выглядит как flex.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 11:20 
Ну в смысле bison.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Олег , 25-Июл-20 09:09 
Оно и есть как flex

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 11:53 
Оно юзается в PHP.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 14:48 
>Зато C самый быстрый, быстрее только ассемблер. Opera 12 парсит тяжелые html со списком пакетов репозитория гораздо быстрее Firefox. Никто с ней не сравнится в этом, даже Netsurf.

Netsurf тоже на С написан.


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 15:01 
Дичь какая-то. Не пытайтесь открывать https://mirror.yandex.ru/gentoo-distfiles/distfiles/ в фф -- я уже и вкладку закрыл, а всё равно ядрами молотит. В opera 69 кстати хотя бы работает, в фф вообще не открывается, нигде не отображается, и процесс можно только убить руками. Не стал ждать дольше 5 минут, может оно бы и загрузилось когда-нибудь, но нагрузка уж чересчур высокая. Elinks самый быстрый.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 15:05 
Виновато было вот это дополнение, но всё равно слишком медленно рендерит и загрузка очень высокая и без него https://addons.mozilla.org/en-US/firefox/addon/css-exfil-pro.../

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Annoynymous , 22-Июл-20 17:42 
УМВР, загрузилось секунд за 20.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено hiveliberty , 22-Июл-20 18:37 
Загрузилось в FF 78.0.2 за пару секунд.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 18:45 
> Загрузилось в FF 78.0.2 за пару секунд.

Дополнения? Там надо ещё поскроллить вниз, вот тогда начинает тормозить. Главного виновника, из-за которого не загружалось вовсе, я указал (просто запустил без дополнений в порядке эксперимента).


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено hiveliberty , 22-Июл-20 21:09 
Ну вот записал даже, для наглядности: https://youtu.be/S-dASP0Lo6w
На скроллинге в одном месте запнулось и всё.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено анон , 22-Июл-20 19:06 
тоже быстро

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 20:17 
Тогда вот вам ссылочка поинтереснее
https://archive.torproject.org/tor-package-archive/debs/main...

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено hiveliberty , 22-Июл-20 21:14 
На это веселье ушло около 24 секунд, да (пока индикатор загрузки во вкладке бегал). Скроллинг сначала запнулся и дальше листает хорошо.
Записать? :D

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 23-Июл-20 04:22 
Мощный комп. На четвертопне Opera 12 около часа пашет (но съедает не более 512 мб памяти). Про Firefox и думать страшно. Там html весит 50 с лишним мб.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено hiveliberty , 23-Июл-20 13:51 
> Мощный комп. На четвертопне Opera 12 около часа пашет (но съедает не
> более 512 мб памяти). Про Firefox и думать страшно. Там html
> весит 50 с лишним мб.

https://prnt.sc/tn6dtc


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Ложечка , 23-Июл-20 13:47 
А вот это грузится примерно минут в FF, и дальше отображается и прокручивается без проблем.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Ложечка , 23-Июл-20 13:41 
Всё нормально грузится и отображается в FF. Разве что один раз при скроллинге лагнуло. Майнеры почистите что ли.

"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 23-Июл-20 15:12 
> Всё нормально грузится и отображается в FF. Разве что один раз при
> скроллинге лагнуло. Майнеры почистите что ли.

У меня лагает на каждом pagedown (белый экран).


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним , 22-Июл-20 20:58 
>>релиз ...свободного генератора лексических анализаторов
>>изначально... создан ... как ...генератор ...лексических анализаторов

в то же время Wikipedia говорит -  "it is used in BRL-CAD as a platform-agnostic and easily compilable alternative to Flex and Bison" - т.е. замена и Lex-у и Yacc-у - автор! проясните всё же что это за программа? а то получается нужна только как "генератора лексических анализаторов", хотя по коду похоже что и замена синтаксическим?


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено Аноним84701 , 22-Июл-20 21:54 
>>>релиз ...свободного генератора лексических анализаторов
>>>изначально... создан ... как ...генератор ...лексических анализаторов

Оригинал:
>> Re2c is a free and open-source lexer generator for C, C++ and Go. It compiles regular expressions to determinisitic finite automata and encodes the automata in the form of a program in the target language

Если за последние полтора года ничего нового не добавили, то довольно простой и очень шустрый "токенизатор".
> в то же время Wikipedia говорит

Википедию те еще "спецы" пишут и правят (не так давно натыкался в статье о бмв изетте на переводы "от балды" - например "рождество" было переведено как "приключение". Начал смотреть, оказалось оно там было правильно, вернее просто отсутсвовало в таких деталях, а затем пришла вумная и авторитетная википэдэвушка и с умным и уверенным видом стала "править". Что она "направила" таким макаром в других статьях, я могу только гадать) 🙄


"Выпуск генератора лексических анализаторов re2c 2.0"
Отправлено skvadrik , 22-Июл-20 23:26 
Я не автор текста на википедии, но там написано "Together with the Lemon parser generator, it is used in BRL-CAD as a platform-agnostic and easily compilable alternative to Flex and Bison". Тут нельзя начало предложения оторвать без потери смысла: re2c сравнивается с fleх, а lemon -- с bison. (Подредактирую статью, чтобы не было неоднозначности.)

re2c -- это генератор лексеров, а не парсеров. Он умеет регулярные грамматики (Type-3 по классификации Хомского), и не умеет контекстно-свободные (Type-2) и выше. Для этих двух классов грамматик используются разные алгоритмы разбора: для регулярных -- конечные автоматы (finite state automata), а для контекстно-свободных -- стековые автоматы (pushdown automaton). Про всё это подробнее можно прочитать в книге "Parsing Techniques - A Practical Guide" [1].

re2c никогда не будет уметь контекстно-свободные грамматики, потому что это была бы уже другая программа с другим алгоритмом и пользовательским интерфейсом. У меня на гитхабе есть lalr2c [2], что-то в духе re2c для LALR(1) грамматик -- он тоже генерирует не-табличные парсеры и позволяет пользователю писать интерфейсный код. Но он пока не вышел за рамки прототипа.

[1] https://dickgrune.com/Books/PTAPG_1st_Edition/BookBody.pdf

[2] https://github.com/skvadrik/lalr2c