Езотеричні мови програмування: відмінності між версіями

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
м (rollbackEdits.php mass rollback)
Мітка: Відкіт
Немає опису редагування
 
(Не показані 9 проміжних версій 4 користувачів)
Рядок 2: Рядок 2:
{{Stub}}
{{Stub}}


'''Езотерична мова прогромування''' — мова, створена для [[Лулз|лулзів]] як пародія на звичні мови програмування ([[C++]], [[Python]], [[Java]]). У цій статті зібрані основні езотеричні мови програмування.
'''Езотерична мова програмування''' — мова, створена для [[Лулз|лулзів]] нудьгуючими кодерами і як пародія на звичні мови програмування ([[C++]], [[Python]], [[Java]]). У цій статті зібрані основні езотеричні мови програмування. Деякі з них створені заради виєбонів, деякі були чисто експерементами.  


== HQ9+ ==
== HQ9+ ==
Рядок 155: Рядок 155:
* [http://www.99-bottles-of-beer.net/language-malbolge-995.html Код на Malbolge, що виводить пісеньку про 99 пляшок пива (!)]
* [http://www.99-bottles-of-beer.net/language-malbolge-995.html Код на Malbolge, що виводить пісеньку про 99 пляшок пива (!)]


== Piet ==
== [https://esolangs.org/wiki/Piet Piet] ==


[[Файл:Piet hello.png|200px|thumb|right|«Hello world!» на Піет]]
[[Файл:Piet hello.png|200px|thumb|right|«Hello world!» на Піет]]


'''Piet''' — графічна, езотерична мова програмування. Код на Piet виглядає як абстракція.
'''Piet''' — графічна, езотерична мова програмування. Код на Piet виглядає як [[Абстракціонізм|абстракція]]. Навіщо? Бо це цікавий експеримент (навіть трохи мистецтво) та тренажер для мізків програмістів яким нудно.


== Spoon ==
== Spoon ==
Рядок 178: Рядок 178:
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією стекової машини. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин.
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією стекової машини. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин.


== Мс’є знаєт толк в ізвращеніях ==
== Мс’є знає толк у збоченнях ==


Деякі люди навіть намагаються писати нормальні програми на таких мовах. [http://habrahabr.ru/blogs/crazydev/95126/ Наприклад, морський бій на Brainfuck].  
Деякі люди навіть намагаються писати нормальні програми на таких мовах. [http://habrahabr.ru/blogs/crazydev/95126/ Наприклад, морський бій на Brainfuck].  
== Chef ==
[[Файл:Helloworld.jpg|міні|Той самий торт, що є одночасно програмою. Жери, я кажу, я для кого готувала!]]
Мова, програми якої одночасно є рецептами приготування зазвичай поганих страв. Виключення — код нижче що друкує Hello World та є рецептом їстівної [[Львівська ґвара|пляцки]].
<pre>
Hello World Cake with Chocolate sauce.
This prints hello world, while being tastier than Hello World Souffle. The main
chef makes a " world!" cake, which he puts in the baking dish. When he gets the
sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish
and then the whole thing is printed when he refrigerates the sauce. When
actually cooking, I'm interpreting the chocolate sauce baking dish to be
separate from the cake one and Liquify to mean either melt or blend depending on
context.
Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture
Cooking time: 25 minutes.
Pre-heat oven to 180 degrees Celsius.
Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa  powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquify the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.
chocolate sauce.
Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate
Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquify the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquify the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.
</pre>
== А де українські? ==
Існує як мінімум одна езотерична мова українською — проект якогось [[Школота|школяра]] Istoriya. Програмний код шифрується під набір рядків із [[ЗНО|НМТ]] з [[Історія України|історії неньки]]. Символічно що будь-яка програма починається з
1 серпня 1914 р. - утворення Головної Української Ради, головою якої став Кость Левицький.
та закінчується
24 серпня 2022 р. - 31-й День Незалежності України.
Не є Тьюринг-повною мовою, але все в твоїх руцях, [[Безос|безосе]] — бери [https://github.com/FedNazar/Istoriya код] та доповнюй!


== Посилання ==
== Посилання ==
Рядок 188: Рядок 271:




{{Айті}}
{{Айті|що=99 9[1-$][$@$@$@$@/*=[1-$$[%1-$@]?0[$.' ,]?]?]#}}

Поточна версія на 14:35, 1 грудня 2025

Dor3.png

Допиши кілька слів зі свого досвіду
Ми дописуємо Драматику разом і ця стаття потребує твоїх думок для повноти. Натисни "редагувати" згори сторінки чи розділу.

Gry-sloupo.jpeg

Стаття потребує доповнення!
Ця стаття засмучує наших слоупоків, бо навіть вони розуміють, що її давно вже треба доповнити усілякими корисними картинками та інформацією, або, можливо, видалити якусь недолугу хуйню ідіота і написати натомість щось притомне.


Езотерична мова програмування — мова, створена для лулзів нудьгуючими кодерами і як пародія на звичні мови програмування (C++, Python, Java). У цій статті зібрані основні езотеричні мови програмування. Деякі з них створені заради виєбонів, деякі були чисто експерементами.

HQ9+

Як відомо, найперше, за що береться бидлокодер на новій для нього мові, це:

  • 1. Написати «Hello, world!» (примітив);
  • 2. Вивести пісеньку про 99 пляшок пива (цикл);
  • 3. Вивести код програми (вища ієрархія для бидла).

Щоби спростити цей шлях до підвищення свого ВВВ, пан Кліф Біффл створив чудову мову, яка має наступні інструкції:

  • H — виведе на екран «Hello, world!»;
  • Q — квайн (виводить свій код);
  • 9 — виведе пісеньку про 99 пляшок пива.

І додатково, щоби мова стала більш суворою, команду:

  • + - інкрементує лічильник, який не можна ніяк використовувати.

Неймовірно, але факт - назва мови складається із усіх своїх інструкцій. Нажаль, вона не є повною за Тюрінгом, тому Crysis на ній не напишеш.

Такий чудовий засіб програмування не лишився без уваги. Щоби навчити бидлокодерів ООП, Девід Морган-Мар створив об’єктно-орієнтований діалект HQ9++, який командою ++ не тільки двічі інкрементує лічильник, але й створює новий об’єкт. Доступу до цього об’єкту нема, в цілях приховування інформації.

Приклад інтерпретатора

На Пайтоні:

code = raw_input(">>")
iter = 0
for c in code:
    if c == "H":
        print "Hello, world!"    
    elif c == "+":
        iter += 1
    elif c == "Q":
        print code
    elif c == "9":
        for i in range(100, 1, -1):
            print "%d bottles of beer\nyou take one down, pass it around"%i
            if i == 1:
                print "no more bottles of beer on the wall.\n"
            else:
                print "%d bottles of beer on the wall.\n"%(i-1)

Посилання

INTERCAL

INTERCAL — найстаріша езотерична мова програмування, створена студентами Доном Вудсом і Джеймсом Лайоном. Мова має багато абсурдних команд:

  • COME FROM
  • FORGET
  • PLEASE ABSTAIN FROM CALCULATING
  • SUCK THAT DICK

Приклади коду

DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
PLEASE DO ,1 SUB #7 <- #48
DO ,1 SUB #8 <- #26
DO ,1 SUB #9 <- #244
PLEASE DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP

Отака хуйня, малята.

Посилання

Brainfuck

Основна стаття: BrainFuck

Befunge

Befunge — оригінальна езотерична мова програмування, програми на якій записуються як таблиця, по якій лазить інтерпретатор.

Приклади

  • Hello, world:
>                          v
@,,,,,,,,,,,,"Hello World!"<
  • Генератор випадкових чисел:
 vv  <      <
     2
     ^  v<
  v1<?>3v4
     ^   ^
 >  >?>  ?>5^
     v   v
  v9<?>7v6
     v  v<
     8
  .  >  >   ^
 ^<
  • Числа Фібоначчі:
62*1+v>01p001>+v>\:02p\:02gv
     0       ^             <
     .         :p
     "         .1
        v 0," "<0
     "  >1g12-+:|
     ,          @
     >^

Посилання

Malbolge

Malbolge — мова, створена для того, щоб стати найважчою для написання програм. Мова настільки складна, що перша програма була не написана, а згенерована іншою програмою на Lisp.

Приклад коду

  • Hello, world:
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}
/.zHGwEDCBA@98\6543W10/.R,+O<

Посилання

Piet

«Hello world!» на Піет

Piet — графічна, езотерична мова програмування. Код на Piet виглядає як абстракція. Навіщо? Бо це цікавий експеримент (навіть трохи мистецтво) та тренажер для мізків програмістів яким нудно.

Spoon

Spoon — мова, еквівалентна Brainfuck, але Спун використовує одиниці та нулі для запису програм. То є просто пиздець.

Hello, world!

1 1 1 1 1 1 1 1 1 1 00100 010 1 1 1 1 1 1 1 010 1 1 1 1 1 1 1 1 1 1 010 1 1 1 010 1 011 011 011
011 000 0011 010 1 1 001010 010 1 001010 1 1 1 1 1 1 1 001010 001010 1 1 1 001010 010 1 1 001010
011 011 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 010 001010 1 1 1 001010 000 000 000 000 000 000
001010 000 000 000 000 000 000 000 000 001010 010 1 001010 010 001010

Whitespace

Сферична програма на Whitespace

Whitespace — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією стекової машини. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин.

Мс’є знає толк у збоченнях

Деякі люди навіть намагаються писати нормальні програми на таких мовах. Наприклад, морський бій на Brainfuck.

Chef

Той самий торт, що є одночасно програмою. Жери, я кажу, я для кого готувала!

Мова, програми якої одночасно є рецептами приготування зазвичай поганих страв. Виключення — код нижче що друкує Hello World та є рецептом їстівної пляцки.

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. The main
chef makes a " world!" cake, which he puts in the baking dish. When he gets the
sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish
and then the whole thing is printed when he refrigerates the sauce. When
actually cooking, I'm interpreting the chocolate sauce baking dish to be
separate from the cake one and Liquify to mean either melt or blend depending on
context.

Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture

Cooking time: 25 minutes.

Pre-heat oven to 180 degrees Celsius.

Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa  powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquify the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.

chocolate sauce.

Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate

Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquify the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquify the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.

А де українські?

Існує як мінімум одна езотерична мова українською — проект якогось школяра Istoriya. Програмний код шифрується під набір рядків із НМТ з історії неньки. Символічно що будь-яка програма починається з

1 серпня 1914 р. - утворення Головної Української Ради, головою якої став Кость Левицький.

та закінчується

24 серпня 2022 р. - 31-й День Незалежності України.

Не є Тьюринг-повною мовою, але все в твоїх руцях, безосе — бери код та доповнюй!

Посилання