14.04.2024

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

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