Основным "объектом" языка является массив памяти размером в 2^16 ячеек. В языке нет переменных, вместо этого есть прямое обращение к "памяти". Вся математика, в том числе и логические выражения реализованы в виде Обратной польской записи. математические операторы: "+", "-", "*", "/", "//", "%", "=", "!=", ">", "<", "ИЛИ", "И", "!"
на данный момент реализованы следующие инструкции:
-КУРСОР <номер ячейки (целое число)> функция задающая ячейку памяти с которой производятся действия.
-ВВОД <НЕЦЕЛ> читает числовое значение из консоли и записывает в текущую ячейку памяти как целое число если не указан аргумент НЕЦЕЛ
-СЧЁТ <формула> результат математического выражения записанного после этой инструкции будет записан в текущую ячейку памяти
-ЦЕЛ преобразует текущее значение ячейки в целое число (отбрасывает дробную часть)
-ЕСЛИ <формула> - инструкция для ветвления, все выражения на следующих строчках перед которыми (через пробел, это важно!) стоит символ "_" в количестве равном количеству вложенности будут выполнены только в том случае если условие истинно.
-<номер ячейки> СЧИТАТЬ не используется как самостоятельная инструкция, указывает инструкциям СЧЁТ, ЕСЛИ и т.д на то, что необходимо взять значение из ячейки памяти.
-ТОЧКА <любое слово> создаёт именованую точку перехода для инструкции ПЕРЕЙТИК
-ПЕРЕЙТИК <номер строки (счёт строк начинать с 1) или именованая точка перехода> инструкция после выполнения которой программа будет выполняться далее с указанной строки. Крайне рекомендуется указывать переход на пустую строку, если в качестве аргумента использовано числовое значение.
-СТРОКА <сама строка>СТРОКА инструккция записшет по 1 символу (ввиде числового значения кода ascii) указанную строку в память начиная с текущей ячейки. Стоит учесть, что строка займёт число символов равное не длине строки, а длине строки + 1, т.к. в конце записывается символ окончания строки.
-ВВОДСТРОКИ <n, не обязательный аргумент> читает строку из консоли и записывает в память как и СТРОКА. При указании числа в качестве аргумента будут записаны только n + 1 символов строки (+1 т.к. всегда записывается символ окончания строки.
-ВЫВОД без аргументов выводит целое число из текущей ячеки памяти. Возможно указание нескольких аргументов:
-НЕЦЕЛ выводит ячейку памяти как число с плавающщей запятой
-СИМВОЛЫ выводит последовательно все символы из ячеек памяти пока не дойдёт до ячейки со значением 0 (конец строки)
-СИМВОЛ выводит 1 символ записанный в текущей ячейке памяти
-СИМВОЛ <n> выводит n символов из ячеек
-СЧИТАТЬФАЙЛ <адрес первого элемента имени> считывает файл и записывает побайтно в ячеки памяти начиная с текущей
-ВЫХОД оператор выхода из программы
КУРСОР 1
СТРОКА Здравствуй Мир! СТРОКА
ВЫВОД СИМВОЛЫ
ВЫХОД
СТРОКА Введите число факториал которого нужно найти: СТРОКА
ВЫВОД СИМВОЛЫ
КУРСОР 0
ВВОД
КУРСОР 3
СЧЁТ 1
ТОЧКА цикл
ЕСЛИ 0 СЧИТАТЬ 1 >
_ СЧЁТ 3 СЧИТАТЬ 0 СЧИТАТЬ *
_ КУРСОР 0
_ СЧЁТ 0 СЧИТАТЬ 1 -
_ КУРСОР 3
_ ПЕРЕЙТИК цикл
ВЫВОД
ВЫХОД
Внимание! Здесь представлена устаревшая реализация языка, написанная на питоне. Актульным интерпретатором сейчас является: https://github.com/Dellno/СFTPL
скачиваем файл ftpl.exe создаём файл main.ftpl (название можно другое) правой кнопкой мышки нажимаем на файл main.ftpl > открыть с помощью > Ещё приложения > найти другое приложение на этом компьютере > находим наш файл ftpl.exe и выбираем его. теперь файлы .ftpl будут всегда открываться с помощью интерпретатора. в качестве редактора кода пока-что блокнот)
По вопросам о проекте: https://t.me/wild_turtles или https://t.me/Dellnoz