Профиль: Аноним (вход | регистрация) не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   +5 +/
А какая-то практическая польза от него есть?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4

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

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

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

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

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

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

6. Сообщение от Аноним (6), 23-Сен-26, 12:31    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | 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   +1 +/
>>Шаблон записывается как аргумент шаблона

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

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

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

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

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

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

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

14. Сообщение от j4niwzis (ok), 23-Сен-26, 13:08   –3 +/
Вполне можно, нужно только условия лицензии соблюдать.
Ответить | Правка | Наверх | 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   +/
Чтобы регулярками быстро текст разбирать. И с C++ типами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

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

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   +1 +/
>Поясните, это значит что это нельзя использовать в коммерческих проектах?

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

Ответить | Правка | Наверх | 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, #41

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 Ответы: #42

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

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

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

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

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

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

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

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

38. Сообщение от limafresh (ok), 23-Сен-26, 17:05   +/
Это распространённое заблуждение из-за манипуляции терминами, мол коммерческий = закрытый. Можно использовать в любых проектах, при соблюдении условий GPL (например открытие кода). Ведь есть коммерческие, но открытые проекты, так само, как есть и некоммерческие, но закрытые проекты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #43

41. Сообщение от limafresh (ok), 23-Сен-26, 17:21   +/
> использовать GPT для библиотеки — это сразу выброшенное время.

Естественно. Если кто-то сделал востребованную библиотеку под GPL, то это скорее всего означает, что вскоре появится альтернатива, созданная с нуля, но под MIT, а оригинал загнётся. Т.е переписывание не ради технического превосходства, а только ради юридических нюансов, которые без воли государства - ничто. Распыление сил. Велосипединг.

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

42. Сообщение от limafresh (ok), 23-Сен-26, 17:28   +/
Тоже не понимаю смысл использования LGPL для не-библиотек (например приложений). Смысл LGPL - позволить линковку с проприетарным кодом, а у приложений линковки как таковой нет - они не библиотеки. Выходит та же самая GPL без возможности пользоваться преимуществами послаблений LGPL. Зачем тогда так запутывать, можно было выбрать обычную GPL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

43. Сообщение от Аноним (-), 23-Сен-26, 18:28   +/
Только вот открытое довольно сложно коммерциализировать. Это шапка себе позволить может, а мелкий разработчик — нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #49, #50

45. Сообщение от _ (??), 23-Сен-26, 18:51   +/
RH - can! You are - not! ;-p
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

46. Сообщение от Аноним (46), 23-Сен-26, 19:35   +/
скорее syn
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

49. Сообщение от limafresh (ok), 23-Сен-26, 20:06   +/
В чём сложно? Просто это не всем подходит. Одна из самых распространенных бизнес-моделей - бесплатная версия под (A)GPL, а платная - под коммерческой лицензией. Если кто-то не хочет раскрывать код - будет вынужден заплатить за коммерческую лицензию. Также есть такое (касается только сервисов), что приложение сервиса открыто, но услуги платные, либо частично платные. Яркий пример - Telegram и его Telegram Premium.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

50. Сообщение от limafresh (ok), 23-Сен-26, 20:22   +/
Если этот "мелкий разработчик" разработчик сервиса, где у пользователей есть аккаунты, то монетизация может идти через платные функции или подписки (например ускоренная загрузка файлов за деньги или подписка на платные реакции на комментарии). Софт может быть хоть под WTFPL, ведь ценность не в софте, а в сервисе; софт это лишь оболочка для доступа к сервису.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43


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

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




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

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