September 16th, 2011

glider

макросы в Scala

Народ, кому нужны макросы в Скале? Ессно, со всеми свистелками вроде типобезопасности и квазицитирования. Есть ли у вас на примете какие-нибудь killer apps для наскального метапрограммирования при помощи макросов?

Дело в том, что я сейчас выбираю semester project, и, в честь моего интереса к ЯП, Мартин предложил мне заняться вопросом декларативного определения под-языков. Применения могут быть весьма разнообразными - от написания стайлчекеров до компактного определения доменно-специфических языков (на тему последнего я планирую когда-нибудь написать отдельный пост).

Когда мы обсуждали детали реализации, я случайно упомянул, что занимался метапрограммированием для дотнета, а Мартин намекнул, что было бы неплохо развивать это направление для скалы, ибо он сам почти уже дофигачил аналог expression trees в дотнете.

Все это интересно, но нужен какой-нибудь реальный юзкейс. Я понимаю, что для макросов применений тьма, да и на сайте Немерле того же куча примеров, но нужно что-то действительно практичное, чтобы не скатиться в сферический вакуум. Есть мысли на эту тему? см. также обсуждение в мейлинг листе: http://groups.google.com/group/scala-user/browse_thread/thread/800353f4a9ce36b9.

upd. Проект одобрен, поэтому как минимум этот семестр буду колбасить метапрограммирование для Скалы. Начну, скорее всего, с квазицитирования. За новостями и обновлениями можно следить по тегу: http://xeno-by.livejournal.com/tag/macros2011.