Здравствуйте, alex_public, Вы писали:
_>На самом деле хочется следующего:
_>1. Добавления удобного МП в мощные мейнстримовые языки. В идеале в C++ и Java, как обладающие самой развитой сейчас инфраструктурой. _>2. Способ добавление (препроцессор, фронтенд к существующему компилятору, альтернативный компилятор) значения не имеет. Хотя в случае C++ третий вариант вряд ли возможно сделать сравнимым по эффективности с существующими монстрами. _>3. Макросы обязательно должны работать с исходниками не как с текстом, а разбирая конструкции языка. Это естественно ключевой пункт, т.к. текстовых вариантов уже давным давно полно. _>4. Чтобы ключевые IDE не тошнило от этих макросов (плагины к ним или что-то подобное). В принципе это пункт опциональный, но очень очень желаемый... _>5. Язык самих макросов не принципиален. Но хочется что-то позволяющее одновременно и ненапряжно делать простейшие вещи (типа макросов C++) и создавать целые DSL при надобности.
_>Вот такие скромные хотелки. За их реализацию в принципе и не жалко денег заплатить. В смысле за готовый продукт, а не за разработку. )))
Для C# почти все это уже есть. Правда IDE легко свести с ума макросами. В отличии от Nemerl'овой, интеграция C# ничего не знает про возможность МП. Но и третий пункт вроде опциональный.
Интегрировать DSL в C# все равно не получится, не расширяемый синтаксис у языка. Только в строковых константах писать. Но зато к компилятору легко подключается парсер для любого файлового расширения, делать DSL в отдельных файлах очень легко. В немерловом проекте даже может какая-то интеграция заработать.