Spin Language
  • Главная
  • Манифест

Spin Language — субъектно-ориентированный язык программирования данных.

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

Субъектом называется список свойств, разделённых оператором ; (точка с запятой). Значения свойств определяется константой или формулой, никакой код извне не может на это повлиять, что исключает многие проблемы безопасности на уровне синтаксиса и упрощает отладку.

Все Spin-структуры данных вложены в абстрактный корневой сетевой субъект иерархии, что позволяет описывать приложение, как часть глобального графа взаимозависимых данных.

Синтаксис

Данные могут быть описаны в виде числа, текста, формулы, субъекта. Формулы описываются арифметическими операциями над данными. В Spin операторы не имеют приоритетов и вычисляются слева направо. Порядок вычислений можно явно указывать через выделение подвыражений в отдельный контекст скобками {}, (), []

Формула 2 + 2 * 2 вычислится, как 8
Результатом 2 + (2 * 2) будет 6.

Комментарии

  • "..." любые символы, заключенные в двойные кавычки - комментарий кода для разработчика, комментарии игнорируются при интерпретации.

Операторы:

  • ~ Приведение типа
  • + Добавление
  • - Исключение
  • * Повторение
  • / Разделение
  • ^ Возведение
  • # Извлечение
  • % Остаток разделения
  • = Сравнение
  • & И
  • | ИЛИ
  • Если между явно разными операндами оператор отсутствует, применяется оператор по умолчанию, означающий присваивание.

Данные

  • 0-9 цифровые символы позволяют описать числа в десятичном представлении
  • '...' любые символы, заключенные в одинарные кавычки, позволяют описать текст, если текст должен содержать символ одинарной кавычки, её экранируют дублированием
  • Все остальные символы допустимо использовать для описания текста без кавычек, но этот способ рекомендуется использовать только для алфавитных символов, так как другие могут в быть включены в синтаксис с развитием языка, как операторы.
  • Вычислимые значения описываются фломулами, аналогичными арифметическим, но операндами могут выступать любые типы, не только числа.
  • Структурный оператор ; позволяет описать субъект - сущность, объединяющая множество свойств. Если свойством субъекта описывается формулой, начинающейся с оператора, то в качестве первого операнда по умолчанию выступит сам субъект.

Для программистов

Исходный код Spin Language не позволяет описывать последовательность процедур, функции, циклы, условия - никакого исполняемого кода, вместо этого он ориентируется на данные. Смена парадигмы позволяет описать связанные данные более естественно. Вместо составления логики реагирования на изменения и пошаговых инструкций машине описываются формулы взаимодействия элементов системы, по аналогии с законами физики.

Spin-ядро контролирует взаимодействие субъектов с внешним Миром
©2026 spinlang.net spinlang.net@gmail.com