Deadfish — шуточный язык программирования. Согласно вики-сайту по эзотерическим языкам программирования, язык программирования-шутки – это язык, который
не представляет никакого интереса, кроме потенциальной юмористической ценности. Вообще говоря, он совершенно непригоден для программирования даже в теории.
Одним из таких языков шуток является Deadfish, получивший свое название от
Изначально Deadfish называли «рыбьими головами», поскольку программирование на этом языке похоже на поедание сырых рыбьих голов. Однако из-за ограниченных возможностей языка программирование на этом языке стало похоже на поедание (и нюхание) мертвых, гниющих рыбьих голов, а это занятие не всегда считается приятным.
Тем не менее, вики-страница Deadfish содержит реализации на 65 различных языках, включая C, C#, C++, Chicken, Clever, COBOL и Commodore 64 BASIC, если назвать только C.
Deadfish был расширен до Deadfish~, который представляет собой расширенную версию оригинального языка Deadfish. Вероятно, по уважительной причине Deadfish~ остался нереализованным... до сегодняшнего дня.
Программа Deadfish имеет одну целочисленную переменную-аккумулятор, которая инициализируется нулем. Язык программирования определяет только четыре операции
cmd | описание |
---|---|
я | Это увеличивает аккумулятор |
д | Это уменьшает аккумулятор |
с | Возводит в квадрат значение в аккумуляторе |
о | Выводит аккумулятор |
Если аккумулятор становится равным -1 или 256, он сбрасывается в ноль.
Deadfish~ — это расширенный набор языка программирования Deadfish. Программы имеют ту же целочисленную переменную-аккумулятор, что и Deadfish, которая инициализируется нулем и ведет себя так же при значениях -1 и 256. Язык определяется на странице esolangs.org, которая содержит следующую таблицу поддерживаемых команд.
cmd | описание |
---|---|
я | Это увеличивает аккумулятор |
д | Это уменьшает аккумулятор |
с | Делает аккумулятор символом |
о | Выводит аккумулятор |
с | Возводит в квадрат значение в аккумуляторе |
{} | Инструкции внутри фигурных скобок зацикливаются от нуля до десяти раз с шагом на единицу. |
() | Если аккумулятор не равен нулю, выполните оператор внутри один раз. |
час | Остановиться |
ш | Привет, мир! приветствие отображается |
Некоторые из этих команд немного неоднозначны, поэтому я решил, что для этой реализации
c
выводит аккумулятор как символ ascii, оставляя значение в аккумуляторе неизменным.{}
операторы внутри фигурных скобок повторяются десять раз.Код не выполняет проверку ошибок, а недопустимые команды или неправильно вложенные фигурные скобки автоматически пропускаются, как и хотел первоначальный автор Deadfish.
#Использование
Исходный код полностью содержится в deadfish.py
. Оцените строки Deadfish с помощью метода deadfish.deadfish
.
>> > import deadfish
>> > deadfish . deadfish ( "iisiiiis{ic}{ic}icicicicicic" )
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Существует также CLI для Deadfish~, доступ к которому можно получить с помощью deadfish.deadfish_cli()
>>> deadfish.deadfish_cli()
>>iiio
3
>>h
Из deadfish_cli()
:
>>iisiiiisiiiiiiiiciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciii{c}dddddddddcdddddddciiiiiiiiiicdddddddc
Horrrrrrrrrrible
>>o
101
>>w
Hello, World!
В этом примере показаны стандартные запросы в верхней части вики-страницы Deadfish, демонстрирующие, что арифметика работает так, как и следовало ожидать в Deadfish.
>>iisssoiissiso
0289