Pull to refresh

Один за всех, и этого достаточно: мой эзотерический язык программирования Single

Level of difficultyEasy
Reading time2 min
Views1.7K

Годами люди писали программу «Hello world!» на языке Unary, но сегодняшнего дня появился новый односимвольный язык программирования! Односимвольный? Достойная замена Unary? Конечно! Представляю вам Single.

О языке

Single является диалектом языка Brainfuck. Испытал значительное влияние языка Unary. Был придуман для сохранения идеи крайнего минимализма Unary, но при этом привносит видимую возможность самостоятельно написать легкую программу; алфавит языка состоит из одного символа ‘s’.

Символ ‘s’ является маркером для интерпретатора, что нужно выполнить команду.

Команда — определяется посредством подсчета количества символов до терминального символа ‘s’, и последующим нахождением остатка от деления на 8 этого числа символов. Остаток от деления на восемь определяет номер команды.

Как вы видите фишка стара как математика. Однако, почему это работает? Всё просто: потому как остатков от деления на 8 ровно 8 вариаций, — а это количество вариаций в точности повторяет число операторов в языке Brainfuck; Тут и полнота по Тьюрингу. Для большей наглядности приведу таблицу трансляций.

Остаток

Brainfuck

Single

0

>

s

1

<

000000000s

2

+

0000000000s

3

-

00000000000s

4

.

000000000000s

5

,

0000000000000s

6

[

00000000000000s

7

]

000000000000000s

Пример программы

Перед тем как начать восторженно писать код, разберем часть программы Hello world!

Разбор программы "Hello world!" на Single
Разбор программы "Hello world!" на Single

Небольшое дополнение для полноты понимания: вместо символа 0, которого здесь более, чем достаточно, может стоят абсолютно любой символ на ваше усмотрение, кроме терминально символа 's'.

Эту программу я написал ручками. Всю логику и приемы написания я показал в таблице. Сейчас на странице проекта на github лежит транслятор из Brainfuck в Single. Там же есть и интерпретатор языка с примерами программ. Не торопитесь переходить по ссылке. Есть у меня еще пару советов для начинающих разработчиков на Single:

  1. Загляните в исходник и отключите RELEASE, так будет намного проще писать код, так как вы будете видеть эквивалентный код на Brainfuck.

  2. Учтите, что лента циклична и сильно ограничена.

Заключение

Можно ли Single назвать односимвольным языком программирования по определению? Конечно! Можно ли его назвать достойной заменой Unary? Конечно! Ну, а если у вас всё еще закрадываются сомнения, то первая же программа развеет их! Но будьте осторожны, Single может отбить всякое желание писать на других языках, и вы можете потерять свою работу.

Tags:
Hubs:
+1
Comments5

Articles