Язык программирования 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:


   ???️??️ wrapper for `1+(++0)`
     ????️??️ wrapper for `add ++(++0)`
       ?? add
       ?? inc
         ?? inc
           ?? zero
     ?? inc
       ?? zero

Источник: http://www.opennet.ru/opennews/art.shtml?num=59753