Вариант для распечатки |
Пред. тема | След. тема | ||
| Форум Разговоры, обсуждение новостей | |||
|---|---|---|---|
| Изначальное сообщение | [ Отслеживать ] | ||
| "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от opennews (??), 12-Мрт-26, 14:13 | ||
Сообщество энтузиастов написало собственный DSL на макросах, который работает как do-нотация из функциональных языков. Используются продвинутые возможности препроцессора. В представленном проекте реализована новая техника для парсинга DSL, что может поспособствовать созданию дальнейших DSL на препроцессоре C и C++. Код в репозитории написан на C++23 и открыт под лицензией MIT, а сама техника может быть использована и просто в си-препроцессоре... | ||
| Ответить | Правка | Cообщить модератору | ||
| Оглавление |
| Сообщения | [Сортировка по времени | RSS] |
| 1. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (-), 12-Мрт-26, 14:13 | ||
> сама техника может быть использована и просто в си-препроцессоре. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 5. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Жироватт (ok), 12-Мрт-26, 14:17 | ||
Потому, что могут. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 8. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (8), 12-Мрт-26, 14:22 | ||
Про технику это не про do-нотацию. Там другая техника. Она про то, как посреди произвольного кода вставлять ключевые слова для макросного DSL. И уже на основе этого можно делать другие DSL. | ||
| Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору | ||
| 9. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (8), 12-Мрт-26, 14:27 | ||
(если просто определить макросы напрямую, то парсинг будет сильно ограничен, тогда как с этой техникой оно становится намного гибке) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 22. "Энтузиасты создали do-нотацию для C++" | +3 +/– | |
| Сообщение от Аноним (22), 12-Мрт-26, 14:54 | ||
Гибко🤸стрелять🔫себе👨в➡️ноги👣 | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 10. "Энтузиасты создали do-нотацию для C++" | –1 +/– | |
| Сообщение от Аноним (10), 12-Мрт-26, 14:28 | ||
> сама техника может быть использована и просто в си-препроцессоре. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 14. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (8), 12-Мрт-26, 14:33 | ||
Техника это не сама do-нотация, а техника парсинга. Чтобы делать другие DSL. Но можно попробовать и do-нотацию сделать попробовать, но там немного другой вид будет (т.к. в си лямбд нет обычно, придется через макросы разбивать на несколько функций и строить цепочки вызовов, так ещё и захваты переменных придётся руками прописывать) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 26. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (26), 12-Мрт-26, 15:03 | ||
техника парсинга нафиг не нужна, есть ctll на основе шаблонов, а не на осонове макросов, уродующих AST самой программы, в результате чего написано одно, а делает программа другое, потому что шаблоны втихаря воруют исходник и меняют его на подделку. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 27. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (26), 12-Мрт-26, 15:03 | ||
тфу, не шаблоны, а макросы | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 35. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (8), 12-Мрт-26, 15:26 | ||
Если бы всё было так просто... Шаблоны это, разумеется, хорошо (и в том репозитории они активно применяются), но могут то они далеко не всё. В таком виде (и в целом в юзабельном) do-нотацию на шаблонах не сделать. Там же гибрид шаблонов и макросов. | ||
| Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору | ||
| 28. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (28), 12-Мрт-26, 15:08 | ||
> А вы предлагаете техники из функциональных языков. | ||
| Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору | ||
| 12. "Энтузиасты создали do-нотацию для C++" | +2 +/– | |
| Сообщение от Аноним (12), 12-Мрт-26, 14:33 | ||
> Сообщество энтузиастов | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 13. "Энтузиасты создали do-нотацию для C++" | +1 +/– | |
| Сообщение от Аноним (13), 12-Мрт-26, 14:33 | ||
бгг… успешной им отладки! =) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 17. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (17), 12-Мрт-26, 14:50 | ||
они такого слова не знают! Надо говорить, успешной разгадки! :) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 39. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (39), 12-Мрт-26, 15:45 | ||
printf() хватит всем. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 19. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (19), 12-Мрт-26, 14:50 | ||
и что такое bind? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 20. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (19), 12-Мрт-26, 14:53 | ||
это явно не std::bind | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 21. "Энтузиасты создали do-нотацию для C++" | –2 +/– | |
| Сообщение от Аноним (21), 12-Мрт-26, 14:54 | ||
А как определите такое и будет. Можно передавать весь последующий код в DO блоке в функцию как лямбду. Но изначально было придумано для монад. В std::optional bind это тот же and_then. На основе bind можно сделать генераторы, корутины, разные монады (и не только монады). | ||
| Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору | ||
| 24. "Энтузиасты создали do-нотацию для C++" | +3 +/– | |
| Сообщение от Аноним (28), 12-Мрт-26, 15:00 | ||
Это чтоб путаться с bind() из libc - биндить сокет к транспортному порту. | ||
| Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору | ||
| 40. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (39), 12-Мрт-26, 15:49 | ||
#include <sys/socket.h> | ||
| Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору | ||
| 25. "Энтузиасты создали do-нотацию для C++" | +2 +/– | |
| Сообщение от Аноним (26), 12-Мрт-26, 15:01 | ||
Начнём с того, что за использование макросов без острой на то необходимости и 100% невозможности сделать по-другому с переиспользованием кода (и всяки свистелки перделки вроде do-нотаци сюда не катят, если не хочешь писать на C++ как на C++, то сиди уже на своей сишке, за си головного мозга, когда на си переизобретают фичи C++ на основе макросов или бойлерплейта кстати тоже надо гнать из профессии) надо гнать из профессии с волчьим билетом. Я прекрасно знаю что ranges недоделаны и ни один компилятор их не умеет оптимизировать, именно поэтому такие фичи должны быть частью ядра языка, а не частью стандартной библиотеки, всё равно новая стандартная библиотека без интринсиков компилятора работать не будет, зачем тогда выпендриваться с шаблонным метапрограммированием, чтобы компиляция была помедленнее и чтобы километровые портянки получать? Такие вещи должны быть first-class citizens языка, разумеется кодить их реализацию надо не на самом языке, а на специальном DSLе, который к сишке имеет такое же отношение, как микрокод процессора (процессоры оказались по сути очень кастрированными FPGA, блин, хотеть полноценный FPGA с полной интеграцией в процессор с полноценной компиляцией программ напрямую в микрокод, а ещё больше хотеть современный аналог трансметы на coarse-grained reconfigurable architecture, где code morphing крутится на арсенид-галлиевом высокоскоростном горячем ядре, а дальше микрооперации через сеть с коммутацией пакетов топологии "звезда" раскидываются по вычислительным блокам на низкой тактовой частоте (но их дохрена параллельных, и по самому тонкому техпроцессу, и к каждому - HBM), но в обычном режиме сеть большую часть времени работает как систолический массив) к машинному коду. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 30. "Энтузиасты создали do-нотацию для C++" | +2 +/– | |
| Сообщение от Аноним (19), 12-Мрт-26, 15:10 | ||
согласен, еще надо unsafe из раст выпилить, не умеешь safe - не берись | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 32. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (-), 12-Мрт-26, 15:14 | ||
> согласен, еще надо unsafe из раст выпилить, не умеешь safe - не берись | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 34. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (8), 12-Мрт-26, 15:23 | ||
Так эта do-нотация и сделана в первую очередь для C++, а на C в таком виде её не сделать (можно сделать в другом). Тут добавлена новая фича в C++, которой раньше в нём не было (корутины достаточно ограничены) | ||
| Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору | ||
| 42. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от аролп5 (?), 12-Мрт-26, 15:56 | ||
В go - горутины | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 37. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (39), 12-Мрт-26, 15:39 | ||
Нитрид галлия не быстрее будет? | ||
| Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору | ||
| 33. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (39), 12-Мрт-26, 15:19 | ||
> В представленном проекте реализована новая техника для парсинга DSL, что может поспособствовать созданию дальнейших DSL на препроцессоре C и C++. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 38. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (38), 12-Мрт-26, 15:40 | ||
Вангую что подобные выкрутасы Торвальдс тоже не пропустит. А если надо, то C++ он в ядро пустит. Но спонсоры увидели выгоду только в расте. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 36. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от 12yoexpert (ok), 12-Мрт-26, 15:34 | ||
не позорься, школотрон | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 41. "Энтузиасты создали do-нотацию для C++" | +/– | |
Сообщение от warlock66613 (ok), 12-Мрт-26, 15:55 | ||
Это мегакруто, но я не смог понять в коде почти ни одной строчки. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 43. "Энтузиасты создали do-нотацию для C++" | +/– | |
| Сообщение от Аноним (43), 12-Мрт-26, 15:57 | ||
Перл изобретают | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
|
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
|
Закладки на сайте Проследить за страницей |
Created 1996-2026 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |