Езотеричні мови програмування: відмінності між версіями
Немає опису редагування |
Vox (обговорення | внесок) м Редагування користувача 95.132.115.27 (обговорення) відкинуті до версії користувача Surikoff |
||
| (Не показані 10 проміжних версій 3 користувачів) | |||
| Рядок 3: | Рядок 3: | ||
== HQ9+ == | == HQ9+ == | ||
Як відомо, перші задачі, які пропонють вирішити [[бидлокодер]]у на новій для нього мові, це: | |||
* 1. Написати «Hello, world!!!» (самий базовий примітив) | |||
* 2. Вивести пісеньку про 99 пляшок пива (цикл) | |||
* 3. Вивести код програми (вища ієрархія для [[бидло|бидла]]) | |||
Щоби спростити цей шлях до підвищення свого [[ЧСВ]], пан Кліф Біффл створив чудову мову, яка має наступні інструкції: | |||
* H — виведе на екран «Hello, world!!!» | * H — виведе на екран «Hello, world!!!» | ||
* Q — квайн (виводить свій код). | * Q — квайн (виводить свій код). | ||
* 9 — виведе пісеньку про 99 пляшок пива. | * 9 — виведе пісеньку про 99 пляшок пива. | ||
* + | І додатково, щоби мова стала більш суворою, команду: | ||
* + - інкрементує лічильник, який не можна ніяк використовувати. | |||
Неймовірно, але факт - назва мови складається із усіх своїх інструкцій. Нажаль, вона не є повною за Тюрінгом, тому [[Crysis]] на ній не напишеш.<br/> | |||
Такий чудовий засіб програмування не лишився без уваги. Щоби навчити [[бидло]] ООП, Девід Морган-Мар створив об’єктно-орієнтований діалект HQ9++, який командою ++ не тільки двічі інкрементує лічильник, але й створює новий об’єкт. Доступу до цього об’єкту нема, в цілях приховування інформації. | |||
===Приклад інтерпретатора=== | ===Приклад інтерпретатора=== | ||
На [[Пайтоні | На [[Python|Пайтоні]]: | ||
<pre> | <pre> | ||
code = raw_input(">>") | code = raw_input(">>") | ||
| Рядок 28: | Рядок 34: | ||
else: | else: | ||
print "%d bottles of beer on the wall.\n"%(i-1)</pre> | print "%d bottles of beer on the wall.\n"%(i-1)</pre> | ||
===Посилання=== | ===Посилання=== | ||
* [http://www.almnet.de/esolang/hq9plus.php Онлайн інтерпретатор] | * [http://www.almnet.de/esolang/hq9plus.php Онлайн інтерпретатор] | ||
| Рядок 60: | Рядок 67: | ||
== Brainfuck == | == Brainfuck == | ||
'''Brainfuck''' ''(англ. Мізкотрах)'' — найвідоміша езотерична мова програмування, відома тим, що хоч і має всього 8 команд, є повною по | '''Brainfuck''' ''(англ. Мізкотрах)'' — найвідоміша езотерична мова програмування, відома тим, що хоч і має всього 8 команд, є повною по Тюрінгу, а це значить, що на ній можна написати [[Crysis]]. Також відома своєю назвою. Взагалі-то, 8 команд це навіть трохи забагато для забезпечення тюрінгової повноти. Але ж в нас все для зручності програміста! Одна з небагатьох езотеричних мов, яка має практичне застосування. Ні-ні, на ній не пишуть ні серверні аплікації, ні драйвери пристроїв. Brainfuck - дуже зручний для перевірки деяких математичних задач, чи можуть вони бути розв’язані машиною. | ||
===Команди=== | ===Команди=== | ||
{| align="center" class="standard" border="2" cellpadding="2" | {| align="center" class="standard" border="2" cellpadding="2" | ||
| Рядок 165: | Рядок 172: | ||
== Whitespace == | == Whitespace == | ||
[[Файл:Whitespace.png|200px|thumb|right|Сферична програма на Whitespace]] | [[Файл:Whitespace.png|200px|thumb|right|Сферична програма на Whitespace]] | ||
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією [[Стекова машина|стекової машини]]. | '''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією [[Стекова машина|стекової машини]]. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин. | ||
== Мс’є знаєт толк в ізвращеніях == | == Мс’є знаєт толк в ізвращеніях == | ||