Здравствуйте, nikov, Вы писали:
N>Где в этой картине присходят такие вещи, как overload resolution, type inference и типизация лямбд? И в каком виде разработчик должен описывать правила для них?
В этой нигде. Для типизации и вывода типов будет отдельная поддержка. Пока что мы только связыванием занимаемся. Зависимые свойства будут использоваться чтобы протащить/расставить места где должны быть типы, а далее в них уже будет нечто вроде переменных-типов по которым будет вывод типов работать. Зависимости будут через отдельный DSL описываться.
Для многих ДСЛ-ей достаточно связывания. Для поддержки MSIL-а, по идее, тоже должно быть достаточно.
N>Можно ли приспособить эту систему к языкам вроде C++?
В теории — да. Парсер у нас генерализованный. Даст две ветки на неоднозначностях. Далее производим связывание и выбираем удачно сросшуюся. Но там еще много всего интересного вроде перегрузки шаблонов (при частичном воплощении) и т.п. Пока не попробуешь, не узнаешь.
Это все в будущем. Сейчас мы даже не определились с окончательным дизайном работы с символами, связыванием и областями видимости. Я как раз сейчас пробую прототип этого дела. Далее, возможно, заДСЛим это дело.
На то что получается можно посмотреть
здесь (подкаталоги AST и Symbols).