LOLCODE

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
LOLCODE
LOLCode logo.png
Парадигма езотерична
Дата появи 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.