LOLCODE — езотерична мова програмування натхненна інтернет мемом lolcat'ом. Мова була створена в 2007 році Адамою Ліндсей, дослідником кафедри обчислювальної техніки Ланкастерського університетуhttps://web.archive.org/web/20090528151824/http://www.comp.lancs.ac.uk/department/news.html.Мова є повною за Тюрінгом, оскільки є можливість реалізації інтерпретатора Brainfuck на LOLCODE.
Приклад структури програми Зарезервовані слова(ключові слова) — це все слова англійського розмовного діалекту взяті з 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 — клас мови Python, який дозволяє використовувати LOLCODE при написанні програми. Також існує LOLCODE.NET — компілятор LOLCODE в MSIL, він перебуває на ранній стадії розробки. Зараз найновіший та найсучасніший інтерпритатор для мови LOLCODE — lci, написаний на С Джастіном Мезою. Він ефективно інтерпретує LOLCODE на різних платформах. Цікаво те що на конференції Microsoft TechEd 2007 в Австралії, Microsoft оголосили, що їхня наступна версія Visual Studio буде підтримувати тільки LOLCODE і називатиметься Cheezburger Studio.
Див. також Intercal Brainfuck Befunge HQ9+
Примітки