Хороший пример языка макросов?
От: cppguard  
Дата: 13.05.22 07:57
Оценка:
На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал
Re: Хороший пример языка макросов?
От: night beast СССР  
Дата: 13.05.22 08:02
Оценка:
Здравствуйте, cppguard, Вы писали:

C>На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал


есть \tex
но это оверкил
Re: Хороший пример языка макросов?
От: scf  
Дата: 13.05.22 08:04
Оценка:
Здравствуйте, cppguard, Вы писали:

C>На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал


Может не добавлять? Пусть копипастят, они же не программисты.
Re: Хороший пример языка макросов?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 13.05.22 14:56
Оценка: +1
Здравствуйте, cppguard, Вы писали:

C>На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал

А хоть какая область?
Т.е. что именно на этом DSL будут описывать?

Я бы начал с этого, а уж потом смотреть...
Если в этой области есть какие-то устоявшиеся нотации, попробовать воспроизвести их.
Re: Хороший пример языка макросов?
От: Homunculus Россия  
Дата: 13.05.22 14:57
Оценка:
Здравствуйте, cppguard, Вы писали:

Для непрограммистов сделай аналог Blueprints из UnrealEngine. Глянь что это если не знаешь. Очень заходит непрограммистам
Re[2]: Хороший пример языка макросов?
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.05.22 13:14
Оценка: :)
Здравствуйте, night beast, Вы писали:

C>>На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал


NB>есть \tex

NB>но это оверкил

\tex — это для мыслящих ракообразных
Re: Хороший пример языка макросов?
От: kov_serg Россия  
Дата: 15.05.22 07:13
Оценка:
Здравствуйте, cppguard, Вы писали:

C>На проекте есть DSL для непрограммистов, но технически подкованных людей, хочу добавить в него макросы. Какой язык посоветуете взять за основу? Сишный препроцессор — ну вы поняли, m4 — для бородатых инопланетян, а с другими я и не работал


То есть в вашем dsl нету подпрограмм и надо как-то усовершенствовать копипасту ?
Re[2]: Хороший пример языка макросов?
От: cppguard  
Дата: 15.05.22 09:35
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>То есть в вашем dsl нету подпрограмм и надо как-то усовершенствовать копипасту ?


Скорее, нужно сделать программу гибче. Сам DSL описывается просто:

f x, y : x^2 + y^2

или (с рекурсией)
g x : g + x
g = 1


Это что-то вроде spreadsheets, только в текстовом описании. Заказчик сам не знает чего хочет, поэтому я решил сделать ему систему макросов, чтобы он мог поиграться.
Re[3]: Хороший пример языка макросов?
От: kov_serg Россия  
Дата: 15.05.22 13:29
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Скорее, нужно сделать программу гибче. Сам DSL описывается просто:

f x, y : x^2 + y^2
g x : g + x
g = 1


DSL как бы подразумевает прикладные задачи и некоторую вполне конкретную область применения. Что значит гибче, проще запись для типовых задач? Достаточный набор готовых примитивов?
Если заказчик не знает чего хочет что мешает использовать lua (простой, легкий в освоении и очень гибкий) и играться можно в любом текстовом редакторе.

ps: tcl вполне себе язык макросов (почти lisp только без скобок)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.