English translation of README.md is available here
Substance PL - это экспериментальный, объектно-ориентированный язык программирования с поддержкой метаязыка для создания новых конструкций.
- Поддержка метаязыка для описания собственных конструкций
- Full-Plugin архитектура с возможностью полной замены всех модулей компилятора
- Возможность компиляции на разных платформах без изменения кода из-за 2-х стадийной компиляции (source -> IL -> binary)
Конструкции могут описываться двумя способами:
- IL кодом
il
{
//IL Code here
}
- На основе уже существующих конструкций
//Описание конструкции while-else из Python
Interface: //блок описания конструкции
while (|boolExpression|)
{
|whileBody|
}
else
{
|elseBody|
}
Implementation: //блок реализации конструкции
var breaked = false;
while (|boolExpression|)
{
breaked = true;
|whileBody|
breaked = false;
}
if (!breaked)
{
|elseBody|
}
Поскольку компилятор имеет Full-Plugin архитектуру, изначально он не будет иметь никаких конструкций. Поэтому первые конструкции будет возможно описать только с помощью IL кода.
Трансляция кода происходит в 2 этапа:
- Перевод исходного кода в промежуточный
- Перевод из промежуточного в машинный
Проект лицензирован под LGPL-3.0 - смотрите LICENSE.md для получения более подробной информации