Skip to content

Dellno/FTPL

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

No releases published

Packages

No packages published

Languages