Этот язык программирования предназначен для выполнения простых арифметических операций, работы с памятью и управления потоком выполнения с помощью меток и условий. Он имеет следующие основные компоненты:
-
Память:
- Память представлена массивом
memoryразмером 32 элемента (float memory[32]). - Курсор
cursorуказывает на текущую позицию в памяти.
- Память представлена массивом
-
Команды:
- Команды определены в виде строк и выполняют различные операции. Вот список поддерживаемых команд:
-
: - Перемещает курсор на указанную позицию в памяти.
- Синтаксис:
: <позиция> - Пример:
: 5перемещает курсор на пятую позицию.
- Синтаксис:
-
= - Записывает указанное значение в текущую позицию памяти.
- Синтаксис:
= <значение> - Пример:
= 10записывает значение 10 в текущую позицию.
- Синтаксис:
-
+ - Добавляет указанное значение к текущему значению в памяти.
- Синтаксис:
+ <значение> - Пример:
+ 5добавляет 5 к текущему значению.
- Синтаксис:
-
- - Вычитает указанное значение из текущего значения в памяти.
- Синтаксис:
- <значение> - Пример:
- 3вычитает 3 из текущего значения.
- Синтаксис:
-
*** - Умножает текущее значение в памяти на указанное значение.
- Синтаксис:
* <значение> - Пример:
* 2умножает текущее значение на 2.
- Синтаксис:
-
/ - Делит текущее значение в памяти на указанное значение.
- Синтаксис:
/ <значение> - Пример:
/ 4делит текущее значение на 4.
- Синтаксис:
-
^ - Возводит текущее значение в памяти в указанную степень.
- Синтаксис:
^ <значение> - Пример:
^ 3возводит текущее значение в степень 3.
- Синтаксис:
-
% - Вычисляет остаток от деления текущего значения в памяти на указанное значение.
- Синтаксис:
% <значение> - Пример:
% 2вычисляет остаток от деления на 2.
- Синтаксис:
-
sin - Вычисляет синус текущего значения в памяти.
- Синтаксис:
sin - Пример:
sinвычисляет синус текущего значения.
- Синтаксис:
-
cos - Вычисляет косинус текущего значения в памяти.
- Синтаксис:
cos - Пример:
cosвычисляет косинус текущего значения.
- Синтаксис:
-
tan - Вычисляет тангенс текущего значения в памяти.
- Синтаксис:
tan - Пример:
tanвычисляет тангенс текущего значения.
- Синтаксис:
-
atan - Вычисляет арктангенс текущего значения в памяти.
- Синтаксис:
atan - Пример:
atanвычисляет арктангенс текущего значения.
- Синтаксис:
-
rand - Генерирует случайное число и записывает его в текущую позицию памяти.
- Синтаксис:
rand - Пример:
randгенерирует случайное число.
- Синтаксис:
-
floor - Приводит текущее значение в памяти к наименьшему целому числу.
- Синтаксис:
floor - Пример:
floorокругляет текущее значение вниз.
- Синтаксис:
-
round - Приводит текущее значение в памяти к ближайшему целому числу.
- Синтаксис:
round - Пример:
roundокругляет текущее значение до ближайшего целого.
- Синтаксис:
-
ceil - Приводит текущее значение в памяти к наибольшему целому числу.
- Синтаксис:
ceil - Пример:
ceilокругляет текущее значение вверх.
- Синтаксис:
-
lt - Если текущее значение в памяти меньше указанного, выполняет следующую строку, иначе пропускает.
- Синтаксис:
lt <значение> - Пример:
lt 10проверяет, меньше ли текущее значение 10.
- Синтаксис:
-
gt - Если текущее значение в памяти больше указанного, выполняет следующую строку, иначе пропускает.
- Синтаксис:
gt <значение> - Пример:
gt 5проверяет, больше ли текущее значение 5.
- Синтаксис:
-
lte - Если текущее значение в памяти меньше или равно указанному, выполняет следующую строку, иначе пропускает.
- Синтаксис:
lte <значение> - Пример:
lte 8проверяет, меньше или равно ли текущее значение 8.
- Синтаксис:
-
gte - Если текущее значение в памяти больше или равно указанному, выполняет следующую строку, иначе пропускает.
- Синтаксис:
gte <значение> - Пример:
gte 3проверяет, больше или равно ли текущее значение 3.
- Синтаксис:
-
eq - Если текущее значение в памяти равно указанному, выполняет следующую строку, иначе пропускает.
- Синтаксис:
eq <значение> - Пример:
eq 7проверяет, равно ли текущее значение 7.
- Синтаксис:
-
neq - Если текущее значение в памяти не равно указанному, выполняет следующую строку, иначе пропускает.
- Синтаксис:
neq <значение> - Пример:
neq 7проверяет, не равно ли текущее значение 7.
- Синтаксис:
-
( - Устанавливает метку на текущей строке программы.
- Синтаксис:
( <метка> - Пример:
( 1устанавливает метку 1.
- Синтаксис:
-
) - Переходит к строке программы, помеченной указанной меткой.
- Синтаксис:
) <метка> - Пример:
) 1переходит к метке 1.
- Синтаксис:
-
dump - Выводит всю память в консоль для отладки.
- Синтаксис:
dump - Пример:
dumpвыводит текущее состояние памяти.
- Синтаксис:
-
exit - Завершает выполнение программы.
- Синтаксис:
exit - Пример:
exitзавершает программу.
- Синтаксис:
: 0
= 10
: 1
= 20
: 2
+ m0
* m1Эта программа:
- Перемещает курсор на позицию 0 и записывает туда значение 10.
- Перемещает курсор на позицию 1 и записывает туда значение 20.
- Перемещает курсор на позицию 2, добавляет значение из ячейки 0 и умножает на значение из ячейки 1.
: 0
= 5
: 1
lt 10
= 100
: 2
gt 10
= 200Эта программа:
- Перемещает курсор на позицию 0 и записывает туда значение 5.
- Перемещает курсор на позицию 1 и проверяет, меньше ли текущее значение 10. Если да, то записывает 100 в текущую позицию.
- Перемещает курсор на позицию 2 и проверяет, больше ли текущее значение 10. Если да, то записывает 200 в текущую позицию.
: 0
= 1
( 1
: 1
+ 1
lt 10
) 1
exitЭта программа:
- Перемещает курсор на позицию 0 и записывает туда значение 1.
- Устанавливает метку 1 на текущей строке.
- Перемещает курсор на позицию 1 и добавляет 1 к текущему значению.
- Проверяет, меньше ли текущее значение 10. Если да, то переходит к строке, помеченной меткой 1.
- Завершает выполнение программы.
Этот язык программирования предоставляет базовые возможности для выполнения арифметических операций, работы с памятью и управления потоком выполнения с помощью меток и условий. Он может быть полезен для обучения основам интерпретации и создания простых языков программирования.