Язык программирования Xi

Xi — это универсальный расширяемый язык программирования. В данный момент он находится в процессе разработки.

Введение

Зачем нужен ещё один язык программирования?

В настоящий момент существует огромное количество различных языков программирования. Разные языки по-разному проявляют свои сильные стороны в различных задачах. При построении крупных программных систем зачастую возникает необходимость решать существенно различные подзадачи в рамках одного проекта. Естественным образом возникает вопрос об использовании нескольких языков в рамках одного проекта.

Существует несколько решений сформулированной проблемы. Среди них стоит выделить следующие.

  • Встраивание интерпретатора одного языка в программу на другом. Например, интерпретаторы Tcl, Perl, Python и других скриптовых языков могут быть встроены в программу на C или C++.
  • Трансляция с одного языка программирования на другой. Например, таким образом работает Chicken Scheme, реализация языка Scheme.
  • Создание нового языка или расширение существующего.
  • Метод непосредственной интеграции, см. Intelib.

Предполагается, что язык Xi явит собой развитие последнего из перечисленных методов. Он должен быть спроектирован таким образом, чтобы предоставлять программисту широкие возможности по моделированию конструкций различных языков программирования в программах на Xi.

Основные требования к языку

Язык должен:

  • быть компилируемым
  • быть статически типизированным
  • допускать низкоуровневое программирования
  • требовать минимальную поддержку во время исполнения
  • позволять использование библиотек, написанных на C
  • иметь мощные средства расширения базового языка

TODO пояснить и обосновать

Базовые средства

Базовые средства языка должны быть близки к таковым языка C.

TODO дать краткое описание

Макросредства

На данный момент принято решение реализовать в языке систему макросов сходную с используемой в Nemerle-2 (см. описание)

TODO дать краткое описание, а также привести отличия

Формальное описание языка

TODO

Реализация

В данный момент в разработке находится две экспериментальные реализации.

Планы на будущее

После получения работающего компилятора или интерпретатора попытаться реализовать средствами языка:

  • систему исключений
  • простой вариант ООП
  • базовую версию лиспа
  • базовую версию пролога
 
projects/xi/desc.txt · Last modified: 2011/04/10 09:29 by iley
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki