Przeglądaj źródła

Created 0. Описание (markdown)

Пётр 10 lat temu
rodzic
commit
8e88162b34
1 zmienionych plików z 65 dodań i 0 usunięć
  1. 65 0
      0.-Описание.md

+ 65 - 0
0.-Описание.md

@@ -0,0 +1,65 @@
+# LOMO
+
+## Описание
+
+LOMO (language of message objects) язык декларативный, модульный. Основан на идеях языка Lola, только вместо электронных компонентов базовым элементом системы выступает программный агент (unit).
+
+## Синтаксис
+
+Синтаксис в стиле Оберона, ключевые слова капсом. Идентификаторы состоят из букв и цифр, начинаются с буквы. 
+
+## Модули
+
+Описание модуля начинается ключевым словом `UNIT`. Является единицей компиляции и загрузки. При исполнении в память загружается один или несколько экземпляров каждого модуля.
+Модуль состоит из секции объявления констант, секции объявления переменных и секции правил (выражений и инструкций)
+
+## Константы
+
+Константы описываются в секции `CONST`. 
+
+## Переменные
+
+### Регистры
+
+## Типы данных
+
+### Встроенные типы
+
+Встроенными типами являются `INTEGER`, `REAL`, `BOOLEAN`, `TRILEAN`, `CHAR`, `STRING`, `ATOM`, `COMPLEX`.
+
+### Модуль это тип.
+
+Идентификатор модуля может являться типом переменной, такой тип называется *сторонним* и представляет возможности использовать переменную в качестве экземпляра модуля (т.е. в качестве агента). 
+Доступ к экспортированным переменным осуществляется с помощью селектора `.`.
+ 
+## Инструкции
+
+### Присваивание
+
+Присваивание обозначается символом `->`, это инструкция устанавливающая значение переменной справа после вычисления этого значения из выражения, описанного слева.
+
+Пример присваивания:
+
+````
+0 -> x
+x + 1 -> y
+````
+
+Каждой переменной может быть присвоено только одно значение. 
+
+## Выражения
+
+### Операторы
+
+В языке LOMO реализованы арифметические операции: сложение, вычитание, умножение, деление, возведение в степень, целочисленное деление и вычисление остатка от целочисленного деления.
+
+### Тернарный оператор
+
+Тернарный оператор позволяет вычислить одно из двух выражений в зависимости от истинности опорного выражения. Тернарные операторы можно связывать в цепочки таким образом осуществляя множественный выбор из выражений.
+
+Пример тернарного оператора:
+
+````
+x > 0 ? 1 : 0 -> y
+x > 0 ? 1 : x < 0 : -1 : 0 -> y
+````