Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

язык программирования FTPL

Основным "объектом" языка является массив памяти размером в 2^16 ячеек. В языке нет переменных, вместо этого есть прямое обращение к "памяти". Вся математика, в том числе и логические выражения реализованы в виде Обратной польской записи. математические операторы: "+", "-", "*", "/", "//", "%", "=", "!=", ">", "<", "ИЛИ", "И", "!"

Написание кода на FTPL

на данный момент реализованы следующие инструкции:

-КУРСОР <номер ячейки (целое число)> функция задающая ячейку памяти с которой производятся действия.

-ВВОД <НЕЦЕЛ> читает числовое значение из консоли и записывает в текущую ячейку памяти как целое число если не указан аргумент НЕЦЕЛ

-СЧЁТ <формула> результат математического выражения записанного после этой инструкции будет записан в текущую ячейку памяти

-ЦЕЛ преобразует текущее значение ячейки в целое число (отбрасывает дробную часть)

-ЕСЛИ <формула> - инструкция для ветвления, все выражения на следующих строчках перед которыми (через пробел, это важно!) стоит символ "_" в количестве равном количеству вложенности будут выполнены только в том случае если условие истинно.

-<номер ячейки> СЧИТАТЬ не используется как самостоятельная инструкция, указывает инструкциям СЧЁТ, ЕСЛИ и т.д на то, что необходимо взять значение из ячейки памяти.

-ТОЧКА <любое слово> создаёт именованую точку перехода для инструкции ПЕРЕЙТИК

-ПЕРЕЙТИК <номер строки (счёт строк начинать с 1) или именованая точка перехода> инструкция после выполнения которой программа будет выполняться далее с указанной строки. Крайне рекомендуется указывать переход на пустую строку, если в качестве аргумента использовано числовое значение.

-СТРОКА <сама строка>СТРОКА инструккция записшет по 1 символу (ввиде числового значения кода ascii) указанную строку в память начиная с текущей ячейки. Стоит учесть, что строка займёт число символов равное не длине строки, а длине строки + 1, т.к. в конце записывается символ окончания строки.

-ВВОДСТРОКИ <n, не обязательный аргумент> читает строку из консоли и записывает в память как и СТРОКА. При указании числа в качестве аргумента будут записаны только n + 1 символов строки (+1 т.к. всегда записывается символ окончания строки.

-ВЫВОД без аргументов выводит целое число из текущей ячеки памяти. Возможно указание нескольких аргументов:

  -НЕЦЕЛ выводит ячейку памяти как число с плавающщей запятой

  -СИМВОЛЫ выводит последовательно все символы из ячеек памяти пока не дойдёт до ячейки со значением 0 (конец строки)

  -СИМВОЛ выводит 1 символ записанный в текущей ячейке памяти

  -СИМВОЛ <n> выводит n символов из ячеек

-СЧИТАТЬФАЙЛ <адрес первого элемента имени> считывает файл и записывает побайтно в ячеки памяти начиная с текущей

-ВЫХОД оператор выхода из программы

примеры кода:

Hello World
КУРСОР 1
СТРОКА Здравствуй Мир! СТРОКА
ВЫВОД СИМВОЛЫ
ВЫХОД

вычисление факториала n-ного числа
СТРОКА Введите число факториал которого нужно найти: СТРОКА
ВЫВОД СИМВОЛЫ
КУРСОР 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages