Один за всех, и этого достаточно: мой эзотерический язык программирования 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!

Небольшое дополнение для полноты понимания: вместо символа 0, которого здесь более, чем достаточно, может стоят абсолютно любой символ на ваше усмотрение, кроме терминально символа 's'.
Эту программу я написал ручками. Всю логику и приемы написания я показал в таблице. Сейчас на странице проекта на github лежит транслятор из Brainfuck в Single. Там же есть и интерпретатор языка с примерами программ. Не торопитесь переходить по ссылке. Есть у меня еще пару советов для начинающих разработчиков на Single:
Загляните в исходник и отключите RELEASE, так будет намного проще писать код, так как вы будете видеть эквивалентный код на Brainfuck.
Учтите, что лента циклична и сильно ограничена.
Заключение
Можно ли Single назвать односимвольным языком программирования по определению? Конечно! Можно ли его назвать достойной заменой Unary? Конечно! Ну, а если у вас всё еще закрадываются сомнения, то первая же программа развеет их! Но будьте осторожны, Single может отбить всякое желание писать на других языках, и вы можете потерять свою работу.