My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Nemerle2  

Phase-Design
ru, en-US
Updated Jan 24, 2011 by VladD2.rsdn.ru

Nemerle 2.0

Nemerle 2.0 - это язык общего назначения для платформы Microsoft .Net/Linux Mono. Поддерживаемые парадигмы:

  • Объектно ориентированное программирование (ООП)
  • Функциональное программирование (ФП)
  • Мета-программирование (МП) - макросы времени компиляции.
  • Языко-ориентировнное программирование (ЯОП).
  • Компонентно-ориентированное программирование (КОП).

Описание проекта Nemerle 2.0

Nemerle 2.0 - это вторая версия языка программирования Nemerle, разрабатываемая "с нуля" с использованием предыдущих наработок.

Вторая версия создаётся преимущественно силами русскоязычного сообщества http://rsdn.ru, примкнуть к которому может любой желающий.

Мы охотно рассмотрим предложения о спонсорской помощи, том или ином виде коммерциализации проекта или помощи в использовании его в коммерческих проектах.

Отличия от Nemerle 1.0

  • Снятие ограничений на расширение синтаксиса. Nemerle 2.0 будет позволять почти безгранично расширять синтаксис. Сам компилятор Nemerle 2.0 будет создан методом самораскрутки (bootstrapping-а) с использованием новой версии макросов.
  • Макросы будут работать с единым AST. В большинстве случаев, больше не будет потребности обращаться к низкоуровневому типизированному AST - типы будут доступны прямо из базового AST.
  • Упростится разработка внутренних DSL-ей.
  • Появится возможность создания внешних DSL-ей. По сути, Nemerle 2.0 будет фрэймворком для разработки новых языков. В качестве внешних DSL-ей смогут выступать не только простейшие HTML/XML, но даже полноценные языки программирования вроде VB, Delphi или C#. При этом для внешних DSL-ей будет обеспечена автоматическая поддержка IDE (подсветка, подсказки и т.п.).
  • Поддержка компиляции для любых версий (начиная с .Net 2.0) и рантаймов .Net/Mono. Так, среди прочего, будет поддерживаться .NET Framework 2.0, .NET Framework 4.0, Silverlight, .NET Compact Framework.
  • Возможность замены модулей чтения метаданных и генерации MSIL-а (сменные back-end-ы).
  • Ускорение компиляции. Компилятор станет многопоточным. Кроме того мы постараемся оптимизировать алгоритм вывода типов. Возможно, удастся реализовать инкрементальную компиляцию с использованием данных получаемых в процессе работы модуля интеграции с IDE.
  • Улучшится поддержка IDE.

Цели второй версии

  • Улучшение качества реализации компилятора.
  • Сделать бóльшую часть структур компилятора неизменяемыми или, по крайней мере, потокобезопасными.
  • Реализовать новую систему синтаксических макросов на основе PEG и разработанного нами улучшенного алгоритма генерации расширяемых парсеров на основе PEG-грамматики.
  • Изначальное проектирование компилятора с учетом того, что он будет использоваться и при интеграции с IDE (VisualStudio).
  • Сменные генераторы кода (вплоть до использования не .net-бэкэндов вроде LLVM).
  • Модульность компилятора с четким разделением интерфейса отдельных модулей.

Sign in to add a comment
Powered by Google Project Hosting