Хороші мови програмування в основному характеризуються тими ж особливостями. Простий у використанні, швидкий у вивченні, структурований. Важливо, щоб це допомагало вирішувати реальні проблеми, щоб його синтаксис був прозорим та логічним, а наявні реалізації без помилок та швидкими. Звичайно, є ті, хто вважає, що варто пожертвувати часом (чи то для досліджень, чи для розваг), щоб розробити мови, для яких нічого з перерахованого не відповідає дійсності. Зараз ми представимо деякі з них.

дивних

1. ЛОЛКОД

У 2007 році LOLCODE охопив Інтернет з великим імпульсом. Його оригінальну версію розробив Адам Ліндсей, дослідник з Університету Ланкастера - в основному він складається з усіх ключових слів, які живляться великими літерами, переважно онлайн-мемами. Ось невеликий фрагмент коду без додаткових коментарів:

Ця маленька програма друкує цифри від 1 до 10, а потім зупиняється. На офіційному веб-сайті LOLCODE ви можете швидко вивчити мову або Ви також можете завантажити компілятор під назвою Ici.

2. Скло

Хоча наш попередній учасник дещо схожий на справжню мову, за винятком смішних ключових слів, із Glass ми потрапляємо у світ, де це вже не відповідає дійсності. Ця мова програмування використовує абсолютно антиінтуїтивну нотацію постфіксу з сильним об'єктно-орієнтованим символом. Тут немає місця пояснити деталі (у кого є зайвий час, варто прочитати цей матеріал), ось невеликий фрагмент коду, який повертає числа Фібоначчі:

Сама мова була придумана Грегором Річардсом у 2005 році. За його словами, ще жодна мова не реалізована з цією логікою, оскільки це просто "ідіотизм".

3. Брейнфук

Вибір імені за своєю суттю є показовим; з Brainfuck ми сміливо продовжуємо веслувати в морі химерних мов. Він був винайдений Урбаном Мюллером ще в 1993 році з метою створення мови програмування, для якої міг би бути написаний компілятор з мінімальними вимогами до зберігання (сьогодні існує також 100-байтний компілятор для Brainfuck). Мова складається з 8 односимвольних команд, які виконують операції низького рівня, насправді ми стикаємося з конструкцією, подібною до класичної машини Тьюрінга. Наступний фрагмент коду реалізує класичне завдання Hello world:

Нічого не простіше. До речі, мова досягла дуже серйозного культового статусу, якщо ви хочете її вивчити, ось хороший невеликий вступ.

4. Курка

Тут нам не потрібно занадто довго займатися вивченням синтаксису, тому що на цій мові ми можемо використовувати лише ключове слово chicken, відп. символ подачі рядка, який позначає початок нової команди. В основному, ми можемо оперувати стеком, і виконувана операція визначається кількістю курчат, описаних підряд: одна штука, наприклад, являє собою додавання двох верхніх елементів стека, три штуки віднімання. Наступна невелика програма записує дані на стандартний вхід у стандартний вихід:

Для любителів курки, до цього варто перейти.

5. Пробіл

Тут також іменування є контрольним, і справді: у цій мові ми можемо використовувати лише пробіли та символи табуляції, кількість та комбінація яких визначають команди, які потрібно запускати, та їх порядок. Оскільки компілятор ігнорує всі інші символи, варто врахувати, що насправді ми можемо вивести будь-який інший вихідний код, лише програма буде визначатися пробілами та вкладками в ньому. Ви можете знайти хороший вступ до мови програмування у Вікіпедії.

Ця мінімалістична мова була створена в 2006 році Таннером Світтом. Єдиною можливою операцією є заміна двох рядків, які необхідно вказати у формі /, яку потрібно замінити/замінити /. З цього легко зрозуміти, що корисність мови (навіть з точки зору членів поточного списку) є досить обмеженою, проте є деякі розумні програмісти, які створили робочі програми з гілками та циклами. Давайте знову залишимося зі звичною програмою Hello world:

7. Befunge

Befunge - це двовимірна мова програмування: ми розміщуємо програму на матриці фіксованого розміру замість рядків один під одним. Поле може містити вказівки або дані, але сама програма може змінювати вміст полів. Компілятор починається з лівого верхнього кута і рухається вправо, але на його напрямок можна впливати за допомогою спеціальних команд. Детальніше про Befunge ви можете прочитати тут, а Hello world виглядає так:

8. Мальболж

Для досвідчених у літературі назва може бути вже показовою, адже у своїй основній праці Данте позначає восьме коло пекла як мальбодж. Єдиною метою Бена Олмстеда, творця мови програмування, було створення мови, якою абсолютно неможливо написати будь-яку корисну програму. Ця місія була настільки успішною, що пройшло два роки після публікації специфікації, щоб з’явилася перша програма Malbolge. У світлі цього, я думаю, що можна пробачити, що якщо я не надаю жодних деталей про те, як це працює, програма Hello world повинна бути тут знову.

+1. Велато

Ця мова ідеально підходить для любителів музики, оскільки сама програма представлена ​​нотами, а введенням компілятора є файл MIDI. У Velato команди визначаються висотою та порядком нот, але вони дозволяють певну свободу, тому програми не обов'язково звучать як послідовність випадкових звуків - насправді коди, написані на Velato, як правило, підбирають джазовий звук.

На чудовій вікі-сторінці Esolangs.org є безліч подібних мов, сміливо заглядайте туди та пишіть свої улюблені.

ITHub.hu

Всі права захищені. Письменний дозвіл необхідний для другого передавання матеріалів на сайті.