Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]



"Первый выпуск scan, библиотеки разбора текста для C++ с построением конечного автомата при компиляции"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Первый выпуск scan, библиотеки разбора текста для C++ с построением конечного автомата при компиляции"  +/
Сообщение от opennews (ok), 23-Сен-26, 12:09 
Опубликован первый выпуск библиотеки scan...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от piteri (ok), 23-Сен-26, 12:09   +3 +/
А какая-то практическая польза от него есть?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4

2. Сообщение от Аноним (2), 23-Сен-26, 12:09   +/
Очередной стандарт C++ принят. Настало время самого интересного - придумать зачем он на практике.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8

3. Сообщение от Аноним (3), 23-Сен-26, 12:13   +/
Подача материала, конечно, препаршивая, видимо, это показатель. А чего сравнения с flex нет?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20, #21

4. Сообщение от Аноним (4), 23-Сен-26, 12:16   +3 +/
похоже на очередной аналог регулярных выражений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #13, #26

5. Сообщение от Аноним1234 (?), 23-Сен-26, 12:24   +2 +/
>Код проекта написан на C++23 и распространяется под лицензией GPLv3.

Поясните, это значит что это нельзя использовать в коммерческих проектах?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #14, #16, #23, #27, #34, #36

6. Сообщение от Аноним (6), 23-Сен-26, 12:31    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #19

7. Сообщение от Аноним (8), 23-Сен-26, 12:36    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

8. Сообщение от Аноним (8), 23-Сен-26, 12:39   +/
Уже принят стандарт C++26. Там это и не только можно с интроспекцией.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #22

9. Сообщение от Shantikov (?), 23-Сен-26, 12:47   +1 +/
>Любого студента учат сначала, как минимум, описать суть проблемы, потом способы решения, затем свой способ решения и чем он лучше остальных. Тут сразу "на ешь решение"

Видимо это была их попытка написать текст статьи без ии

Ответить | Правка | Наверх | Cообщить модератору

10. Сообщение от Аноним (10), 23-Сен-26, 12:57   +/
Угу. Как обычно, на тестах показывает "быстрее всех", но потом в процессе применения "неожиданно" выясняется, что из-за шаблонов экзешник растёт по экспоненте, а из-за большого объема кода и производительность начинает неожиданно лагать.

А ещё это будет безумно сложно отлаживать, если что-то пошло не так.

А, ну и ещё компилироваться это будет вечность.

В общем и целом, если вам нужен быстрый разбор текста - лучше и полезнее всего использовать классику, типа flex или его аналогов.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12

11. Сообщение от АнОним (?), 23-Сен-26, 12:59   +/
>>Шаблон записывается как аргумент шаблона

Дальше не читал

Ответить | Правка | Наверх | Cообщить модератору

12. Сообщение от j4niwzis (ok), 23-Сен-26, 13:04   +1 +/
Так сама детерминизация в DFA и TDFA экспоненциальная, а она в генераторах лексеров есть. Тут алгоритм, которым пользуются некоторые генераторы лексеров, а шаблонами кодген не генерирует сильно больше нужного. Проблема с ростом кода была, но была исправлена с переходом на модель с computed goto. Теперь оно нормально генерируется.

Компилируется и правда достаточно долго, этого не избежать с шаблонами и рабором через constexpr (JIT или хотя бы более быстрый constexpr то в компиляторы не завезли).

Подход с кодогенерацией я не уважаю, если можно сделать без нее. Тут вот можно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #33

13. Сообщение от j4niwzis (ok), 23-Сен-26, 13:06   +2 +/
Почему аналог? Регулярные выражения и есть, просто с поддержкой типов C++. Но и это необязательно, можно использовать тот же интерфейс, что в том же ctre.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

14. Сообщение от j4niwzis (ok), 23-Сен-26, 13:08   –2 +/
Вполне можно, нужно только условия лицензии соблюдать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

15. Сообщение от aname (ok), 23-Сен-26, 13:10   +/
Чтобы что?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17

16. Сообщение от Аноним (16), 23-Сен-26, 13:12   –2 +/
Для коммерческих целей пиши сам с нуля, а GPL это чтоб исходниками делиться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #18

17. Сообщение от j4niwzis (ok), 23-Сен-26, 13:14   +1 +/
Чтобы регулярками быстро текст разбирать. И с C++ типами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

18. Сообщение от j4niwzis (ok), 23-Сен-26, 13:15   +/
Коммерция вполне возможна и когда исходниками делятся. Закрыть код и распространять бинари только вот нельзя
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

19. Сообщение от Аноним (8), 23-Сен-26, 13:15   +/
Тут проще, не нравится - не ешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

20. Сообщение от Аноним (20), 23-Сен-26, 13:16   +/
Могу сравнить за них:
При использовании flex нужно писать .l файл, вызывать сам flex из системы сборки, компилять и линковать.
Если брать scan, то достаточно подключить #include <s>(а потом подождать пока компилятор разберет эту шаблонную лапшу, и молиться что по пути не возникнет ошибка)</s>
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

21. Сообщение от j4niwzis (ok), 23-Сен-26, 13:17   +/
Так re2c обычно быстрее flex. Но сравнение всё равно можно было бы добавить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

22. Сообщение от j4niwzis (ok), 23-Сен-26, 13:26   +/
В C++26 есть и рефлексия, а не только интроспекция.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

23. Сообщение от Sm0ke85 (ok), 23-Сен-26, 14:14   +2 +/
>Поясните, это значит что это нельзя использовать в коммерческих проектах?

Идите лесом и пишите себе свое, а это Общественное...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

24. Сообщение от Аноним (24), 23-Сен-26, 14:30    Скрыто ботом-модератором–2 +/
Ответить | Правка | Наверх | Cообщить модератору

26. Сообщение от Норм (?), 23-Сен-26, 14:53    Скрыто ботом-модератором–1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

27. Сообщение от Xasd1 (?), 23-Сен-26, 15:22   +/
дауж…

использовать GPT для библиотеки — это сразу выброшенное время.

(наверно в угоду создателям SAAS только хорошо. они на сервер выложат сервис, и бинарники будто бы ни кому и не давали)

ну LGPL же специально для библиотек есть… ну ёмаё!

надло, расходимся

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #28

28. Сообщение от j4niwzis (ok), 23-Сен-26, 15:36   +/
LGPL это не Library GPL а Lesser GPL. https://www.gnu.org/licenses/why-not-lgpl.html
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #29

29. Сообщение от Xasd1 (?), 23-Сен-26, 15:48   +/
ага. потому что приложения ТОЖЕ хорошо (зачастую) выпускать под LGPL

а не только библиотеки :-)

однако если по глуупочти засунуть в своё приложение какую-то библиотеку на GPL…  то уже НЕ ВЫЙДЕТ всё приложение выпустить под LGPL 🙈🙈🙈

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #30

30. Сообщение от j4niwzis (ok), 23-Сен-26, 16:08   +/
Не могу придумать ни единой причины выпускать приложение под LGPL. Библиотеки же имеет смысл выпускать под LGPL лишь иногда. Тут лучше подходит GPL, т.к. достаточный уровень оригинальности, а преимущества свободному ПО давать нужно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

31. Сообщение от Аноним (31), 23-Сен-26, 16:13   +/
serde изобрёл?
Ответить | Правка | Наверх | Cообщить модератору

32. Сообщение от Аноним (32), 23-Сен-26, 16:17    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

33. Сообщение от черпало (?), 23-Сен-26, 16:26   +/
> Подход с кодогенерацией я не уважаю, если можно сделать без нее.

А зачем нагенерил нейронкой код-то, если так?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

34. Сообщение от Аноним (34), 23-Сен-26, 16:36    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

35. Сообщение от мяв (?), 23-Сен-26, 16:39   +/
круто ! так держать
Ответить | Правка | Наверх | Cообщить модератору

36. Сообщение от Аноним (36), 23-Сен-26, 16:40   +1 +/
Именно это и значит. GPLv3 специально сделана токсичной для коммерции чтобы не дай бог успех не случился.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

37. Сообщение от Аноним (37), 23-Сен-26, 16:53   +/
Куда пропала борода?
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить новость, Поддержать