IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   In DOS We Trust (https://www.imho.ws/forumdisplay.php?f=73)
-   -   Эзотерические языки прогаммирования и ОС Petrovich (https://www.imho.ws/showthread.php?t=114476)

XPEHOMETP 31.01.2007 23:34

Эзотерические языки прогаммирования и ОС Petrovich
 
http://www.dangermouse.net/esoteric/

- с этй странички можно перейти к описаниям малоизвестных эзотерических языков программирования. Я не буду перечислять все, только те, что мне особенно понравились.

ZOMBIE - это название языка является сокращением:
Цитата:

ZOMBIE is an acronym, and stands for Zombie-Oriented Machine-Being Interface Engine.
Это компьютерный язык, созданный для некромантов, позволяющий им оживлять мертвецов, вызывать и контролировать духов, а также решать любые вычислительные задачи. Поддерживается многозадачность: одновременно можно оживить несколько мертвецов, и каждый из них может выполнять несколько задач одновременно. И так далее. Но компилятора для этого языка, к сожалению, нету...:(

Ook! - язык программирования, созданный для орангутанов. Он, в основном, изоморфен известному эзотерическому языку программирования BrainFuck, но имеет еще меньше составляющих элементов. Основные принципы построения этого языка такие:

1. Язык программирования должен быть таким, чтобы орангутаны могли его читать и писать на нем.
2. Поэтому синтаксис должен быть простым, легко запоминающимся, и не включать слово "обезьяна".
3. Бананы - это хорошо!

В языке всего три синтаксических элемента:

Ook.
Ook?
Ook!

Они объединяются в группы по два, пара Ook -ов составляют команду. Дальше идет описание этих команд, переводить не буду:
Цитата:

Ook. Ook?
Move the Memory Pointer to the next array cell.
Ook? Ook.
Move the Memory Pointer to the previous array cell.
Ook. Ook.
Increment the array cell pointed at by the Memory Pointer.
Ook! Ook!
Decrement the array cell pointed at by the Memory Pointer.
Ook. Ook!
Read a character from STDIN and put its ASCII value into the cell pointed at by the Memory Pointer.
Ook! Ook.
Print the character with ASCII value equal to the value in the cell pointed at by the Memory Pointer.
Ook! Ook?
Move to the command following the matching Ook? Ook! if the value in the cell pointed at by the Memory Pointer is zero. Note that Ook! Ook? and Ook? Ook! commands nest like pairs of parentheses, and matching pairs are defined in the same way as for parentheses.
Ook? Ook!
Move to the command following the matching Ook! Ook? if the value in the cell pointed at by the Memory Pointer is non-zero.
И это весь язык. А чего вы ожидали от языка, пригодного для орангутанов?

С практической реализацией этого языка дела обстоят лучше. На его страничке находятся 5 ссылок на интерпретаторы, конвертеры и проч., написанные для него. В частности, есть Java-аплет, конвертирующий Ook! в BrainFuck и обратно. Есть интерпретаторы на Ruby, Perl и Python, последний имеет название "pook". Есть даже компилятор Ook! для .NET, он называется Ook!#

HQ9++. Этот эзотерический язык является объектно-ориентированным расширением известного эзотерического языка программирования HQ9+, автором которого является Cliff L. Biffle. HQ9++ дополняет элегантность, простоту и мощь HQ9+ объектно-ориентированной парадигмой и имеет обратную совместимость с HQ9+. То есть любая корректная программа на HQ9+ будет работать в HQ9++ и давать тот же результат.

HQ9+ создан для того, чтобы сделать некоторые весьма распространенные задачи программирования чрезвычайно просто выполняемыми. HQ9++ дополняет его функциональность реализацией объектно-ориентированного подхода в программировании.

Основным тестом на применимость любого языка программирования является проверка его способности напечатать текст "Hello, World!" HQ9+ позволяет написать такую тестовую программу в очень эффективной и явной манере. Хорошим тестом на контроль за выполнением программы и на способность использовать рекурсию является способность напечатать полный текст песни "99 Bottles of Beer on the Wall", написав как можно более понятный программный код. В этом тесте HQ9+ определенно представляет стандарт програмирования. Программа, которая печатает текст своего исходного кода, называется английским словом "quine". Для многих языков это требует очень изощренного программирования. HQ9+ снова создает стандарт в этом тесте на проверку возможностей языков программирования.

HQ9++ расширяет HQ9+, позволяя определять объекты. HQ9++ является так называемым чистым объектно-ориентированным языком, в котором все данные хранятся в объектах. В нем нет простых переменных, таких как целые числа, которые существуют в "нечистых" объектно-ориентированных языках, таких как C++ или Java.

HQ9++ имеет 4 синтаксических элемента:
H
Q
9
+
Они объединяются в 5 команд, описываемых ниже.

H - печатает "Hello, world!".
Q - печатает весь текст файла с исходным кодом.
9 - печатает полный канонический текст "99 Bottles of Beer on the Wall".
+ - увеличивает накопитель.
++ - когда встречается последовательность ++, она (естественно) дважды увеличивает накопитель, и также создает экземпляр объекта нового субкласса, производного от общего суперкласса. В соответствии с лучшими принципами скрывания данных, не существует способов доступа к этому объекту.

Компиляторов-интерпретаторов не значится, но есть ссылка на еще один родственный язык: HQ9+-

Кроме эзотерических языков программирования бывают еще эзотерические алгоритмы. Например, Demon Sort - алгоритм сортировки, который нарушает второй закон термодинамики. Ссылочки приведены на той же странице.

И, наконец, эзотерическая операционная система с гордым именем Petrovich. Вот что говорится об этой операционке:

Petrovich - это более чем язык программирования, это полная операционная система и среда для разработки программ. ОС названа так в честь Ивана Петровича Павлова, мужика, который демонстрировал условные рефлексы на собаках. В соответствии с учением академика, Petrovich предоставляет два метода влиять на свое поведение: поощрение и наказание. Приводятся примеры команд этой ОС, и в конце концов говорится:

В случае, если вы считаете все это просто шуткой, представьте надстройку ОС Petrovich поверх другой операционной системы, такой как Microsoft Windows (TM). Каждый раз, когда Windows делает что-то, что вам не нравится, вы можете наказать ОС, и она никогда не сделает этого снова...


Часовой пояс GMT +4, время: 14:28.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.