Перейти до вмісту

LOLCODE

Матеріал з Вікіпедії — вільної енциклопедії.
LOLCODE
Парадигмаезотерична
Дата появи2007
ТворціАдам Ліндсей
Останній реліз
Під впливом відLolcats
Звичайні розширення файлів.lol, .lols
Вебсайтlolcode.org

LOLCODE — езотерична мова програмування натхненна інтернет мемом lolcat'ом. Мова була створена в 2007 році Адамою Ліндсей, дослідником кафедри обчислювальної техніки Ланкастерського університету[1].Мова є повною за Тюрінгом, оскільки є можливість реалізації інтерпретатора Brainfuck на LOLCODE[2].

Приклад структури програми

[ред. | ред. код]

Зарезервовані слова(ключові слова) — це все слова англійського розмовного діалекту взяті з lolcat мемів.

Код Пояснення
HAI [ВЕРСІЯ] Усі LOLCODE програми починаються з HAI («Hi!», що означає «Привіт») вітання та вказування певної версії мови.
CAN HAS [БІБЛІОТЕКА]? Так як і в С++ підключається стандартна бібліотека для використання простих методів, наприклад для вводу та виводу тексту.
VISIBLE [ТЕКСТ] Виводить повідомлення з текстом на екран.
GIMMEH[ЗМІННА] Аналог input() у Python.Поки що цей метод повертає тільки значення string.
KTHXBYE Оголошуємо кінець коду програми. ('K' = «OK», «Thanks»="THX" «BYE» — це слова записані одним словом, що разом означають «Добре, дякую, бувай»)
BTW [КОМЕНТАР] Додає однорядковий коментар («BTW» = «By the way», що означає «До речі»)
OBTW [КОМЕНТАР]

TLDR

Додає багаторядковий коментар. («OBTW» — початок, «TLDR» — кінець коментаря, «TLDR» = «Too long, don't read», що означає «Дуже довго, не читай»)
PLZ [команда?]

AWSUM THX

[код]

O NOES

[код]

Блок обробки винятків.Аналог «try .. catch .. finally» в Java.
I HAS A [ЗМІННА] ITZ [ЗНАЧЕННЯ] Оголошення змінної.
IZ [ЗМІННА] ОПЕРАЦІЯ ПОРІВНЯННЯ [ЗНАЧЕННЯ]? Порівняння. (Операції порівняння тут записуються словами, тобто: «BIGGER»= «>», «SMALLER»="<", «SAEM» = "==", «DIFFRINT» = "!=")
IM IN YR [НАЗВА ЦИКЛУ]

IM OUTTA YR [НАЗВА ЦИКЛУ].

Цикл який повторюється допоки не буде команди IM OUTTA YR [НАЗВА ЦИКЛУ].

Нижче наведено запис бінарних операцій.

SUM OF <x> AN <y>       BTW +(Сума змінних х і у)
DIFF OF <x> AN <y>      BTW -(Різниця змінних х і у)
PRODUKT OF <x> AN <y>   BTW *(Множення змінних х на у)
QUOSHUNT OF <x> AN <y>  BTW /(Цілочисельне ділення змінних х на у)
MOD OF <x> AN <y>       BTW mod(Остача від ділення числа х на у )
BIGGR OF <x> AN <y>     BTW max(Максимальна зі змінних х і у)
SMALLR OF <x> AN <y>    BTW min(Мінімальна зі змінних х і у)


Нижче наведено приклад простої програми на LOLCODE, яка виводить на стандартний потік виводу рядка HAI, WORLD!.

Приклад 1

[ред. | ред. код]
HAI 1.2
CAN HAS STDIO?
BTW VISIBLE "THIS IS EXAMPLE 1 AND THIS IS EXAMPLE OF COMMENT"
VISIBLE "HAI WORLD!"
OBTW
VISIBLE "THIS TOO IS"
VISIBLE "AN EXAMPLE OF COMMENT"
TLDR
KTHXBYE

Вивід:

HAI WORLD!

Вивелось тільки HAI WORLD! оскільки рядки 3, 5, 6, 7, 8 є коментарями.

Далі простий приклад коду для роботи з файлами.("PLZ OPEN FILE «НАЗВА ФАЙЛУ» означає «Будь ласка відкрий файл „НАЗВА ФАЙЛУ“ — метод для відкриття файлу»)

Приклад 2

[ред. | ред. код]
 HAI
 CAN HAS STDIO?
 PLZ OPEN FILE "LOLCATS.TXT"?
     AWSUM THX
         VISIBLE FILE
     O NOES
         VISIBLE "ERROR!"
 KTHXBYE

Наступний приклад показує роботу команд IM IN YR LOOP ,I HAS A variable, IZ і методу GIMMEH .

Приклад 3

[ред. | ред. код]
HAI 1.0
CAN HAS STDIO?
I HAS A VAR1 ITZ 10
I HAS A WORD
GIMMEH WORD
IM IN YR LOOP
    UP VAR1!!1
    IZ VAR1 BIGGER THAN 20? KTHX
IM OUTTA YR LOOP
VISIBLE WORD
VISIBLE VAR1
KTHXBYE

Реалізація LOLCODE

[ред. | ред. код]

LOLPython[3] — клас мови Python, який дозволяє використовувати LOLCODE при написанні програми. Також існує LOLCODE.NET[4] — компілятор LOLCODE в MSIL, він перебуває на ранній стадії розробки. Зараз найновіший та найсучасніший інтерпритатор для мови LOLCODE — lci[5], написаний на С Джастіном Мезою. Він ефективно інтерпретує LOLCODE на різних платформах. Цікаво те що на конференції Microsoft TechEd 2007 в Австралії[6], Microsoft оголосили, що їхня наступна версія Visual Studio буде підтримувати тільки LOLCODE і називатиметься Cheezburger Studio.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. https://web.archive.org/web/20090528151824/http://www.comp.lancs.ac.uk/department/news.html
  2. 262588213843476. Brainfuck interpreter in Lolcode. Gist (англ.). Процитовано 12 грудня 2020.
  3. LOLPython. www.dalkescientific.com. Архів оригіналу за 9 листопада 2020. Процитовано 12 грудня 2020.
  4. Bock, Jason (8 вересня 2020), JasonBock/LOLCode.net, архів оригіналу за 23 січня 2021, процитовано 12 грудня 2020
  5. LOLCODE. www.lolcode.org. Архів оригіналу за 9 січня 2021. Процитовано 11 грудня 2020.
  6. Zheng, Long (9 серпня 2007). TechEd Day 2: Microsoft announces LOLCode support and Cheezburger Studios. istartedsomething (амер.). Архів оригіналу за 21 січня 2021. Процитовано 12 грудня 2020.