Язык программирования Birb, состоящий только из emoji-значков птиц

Марвин Бёрнер (Marvin Borner), автор функционального языка программирования Bruijn, в котором применяется лямбда-исчисление на основе индекса Брюйна, позволяющего обойтись при построении программы без имён переменных, разработан новый язык программирования Birb, в котором программа формируется только из emoji-значков разных птиц. Код реализации написан на языке Haskell и распространяется под лицензией MIT.

Язык является полными по Тьюрингу и разработан по мотивам книги Рэймонда Смаллиана “Передразнить пересмешника и другие логические загадки, включая увлекательное путешествие в комбинаторную логику” (“To Mock a Mockingbird“), в которой комбинаторная логика поясняется с использованием типовых комбинаторов, которым присвоены названия птиц.

В языке Birb используется принцип комбинаторного программирования, в соответствии с которым любую вычислимую функцию можно представить в виде двух типовых комбинаторов. Таким образом при написании кода программ можно обойтись лямбда-исчислением, в котором применяются только комбинаторы, ассоциированные с emoji-значками с изображением птиц. Например, сова “🦉” определяет выражение “λab.b(ab)”, утка “🦆” – “λabc.c(ba)” и т.п.

Синтаксис программы сводится к шаблону “[birb]+: Birb”. Цифры задаются с использованием кодирования Чёрча, например, 0 можно представить как “🐥🐦”, 1 как “🪽🐧”, а операцию 1+2 как “🐦🐦🕊️🐧🕊️🐧🐦🐧🕊️🐧🕊️🪽🐧🦢🐧🦢🐧🐥🐦🦢🐧🐥🐦”. Все символы, отличные от emoji птиц, обрабатываются как комментарии. Пример программы на языке Bird:

Release. Ссылка here.