Как стать автором
Обновить

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

Уровень сложностиПростой

Годами люди писали программу "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 может отбить всякое желание писать на других языках, и вы можете потерять свою работу.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.