Re[2]: [Nitra] Принципы построения языка программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.05.15 18:04
Оценка:
Здравствуйте, nikov, Вы писали:

N>Где в этой картине присходят такие вещи, как overload resolution, type inference и типизация лямбд? И в каком виде разработчик должен описывать правила для них?


В этой нигде. Для типизации и вывода типов будет отдельная поддержка. Пока что мы только связыванием занимаемся. Зависимые свойства будут использоваться чтобы протащить/расставить места где должны быть типы, а далее в них уже будет нечто вроде переменных-типов по которым будет вывод типов работать. Зависимости будут через отдельный DSL описываться.

Для многих ДСЛ-ей достаточно связывания. Для поддержки MSIL-а, по идее, тоже должно быть достаточно.

N>Можно ли приспособить эту систему к языкам вроде C++?


В теории — да. Парсер у нас генерализованный. Даст две ветки на неоднозначностях. Далее производим связывание и выбираем удачно сросшуюся. Но там еще много всего интересного вроде перегрузки шаблонов (при частичном воплощении) и т.п. Пока не попробуешь, не узнаешь.

Это все в будущем. Сейчас мы даже не определились с окончательным дизайном работы с символами, связыванием и областями видимости. Я как раз сейчас пробую прототип этого дела. Далее, возможно, заДСЛим это дело.

На то что получается можно посмотреть здесь (подкаталоги AST и Symbols).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.