Skip to content

Raccoon-Team/substance-programming-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Substance PL

English translation of README.md is available here

О языке и компиляторе

Substance PL - это экспериментальный, объектно-ориентированный язык программирования с поддержкой метаязыка для создания новых конструкций.

Основные особенности:

  • Поддержка метаязыка для описания собственных конструкций
  • Full-Plugin архитектура с возможностью полной замены всех модулей компилятора
  • Возможность компиляции на разных платформах без изменения кода из-за 2-х стадийной компиляции (source -> IL -> binary)

О метаязыке и создании собственных конструкций

Конструкции могут описываться двумя способами:

  1. IL кодом
il
{
  //IL Code here
}
  1. На основе уже существующих конструкций
//Описание конструкции 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 этапа:

  1. Перевод исходного кода в промежуточный
  2. Перевод из промежуточного в машинный

Лицензия

Проект лицензирован под LGPL-3.0 - смотрите LICENSE.md для получения более подробной информации

About

Experimental programming language, with support meta language for create new constructions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published