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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3258
Зарегистрирован: 20.08.2022

#

Язык программирования Birb, состоящий только из emoji-значков птиц
Дата публикации:Thu, 14 Sep 2023 08:03:59 +0300




Марвин Бёрнер (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




Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59753

Жизнь за Нер'зула!

Ответить