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 [КОМЕНТАР]
| Додає багаторядковий коментар. («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 [НАЗВА ЦИКЛУ]. |
Нижче наведено запис бінарних операцій.
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!
.
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 «НАЗВА ФАЙЛУ» означає «Будь ласка відкрий файл „НАЗВА ФАЙЛУ“ — метод для відкриття файлу»)
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
.
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
LOLPython[3] — клас мови Python, який дозволяє використовувати LOLCODE при написанні програми. Також існує LOLCODE.NET[4] — компілятор LOLCODE в MSIL, він перебуває на ранній стадії розробки. Зараз найновіший та найсучасніший інтерпритатор для мови LOLCODE — lci[5], написаний на С Джастіном Мезою. Він ефективно інтерпретує LOLCODE на різних платформах. Цікаво те що на конференції Microsoft TechEd 2007 в Австралії[6], Microsoft оголосили, що їхня наступна версія Visual Studio буде підтримувати тільки LOLCODE і називатиметься Cheezburger Studio.
- ↑ https://web.archive.org/web/20090528151824/http://www.comp.lancs.ac.uk/department/news.html
- ↑ 262588213843476. Brainfuck interpreter in Lolcode. Gist (англ.). Процитовано 12 грудня 2020.
- ↑ LOLPython. www.dalkescientific.com. Архів оригіналу за 9 листопада 2020. Процитовано 12 грудня 2020.
- ↑ Bock, Jason (8 вересня 2020), JasonBock/LOLCode.net, архів оригіналу за 23 січня 2021, процитовано 12 грудня 2020
- ↑ LOLCODE. www.lolcode.org. Архів оригіналу за 9 січня 2021. Процитовано 11 грудня 2020.
- ↑ Zheng, Long (9 серпня 2007). TechEd Day 2: Microsoft announces LOLCode support and Cheezburger Studios. istartedsomething (амер.). Архів оригіналу за 21 січня 2021. Процитовано 12 грудня 2020.