Jump to content

ЛОЛКОД

ЛОЛКОД
Парадигма эзотерический
Разработано Адам Линдси
Впервые появился 2007
Расширения имен файлов .лол, .лолс
Веб-сайт лолкод .org
Под влиянием
лолкоты

LOLCODE — это эзотерический язык программирования, вдохновленный lolspeak , языком, выраженным в примерах lolcat интернет-мема . [1] Язык был создан в 2007 году Адамом Линдси, исследователем компьютерного факультета Ланкастерского университета . [2] [3]

Язык не имеет четкого определения приоритетов операторов и правильного синтаксиса, но существует несколько функционирующих интерпретаторов и компиляторов. Одна из интерпретаций языка оказалась полной по Тьюрингу . [4]

Структура языка и примеры

[ редактировать ]

LOLCODE Ключевые слова взяты из сильно сжатого (сокращенного) наречия интернет-мема лолкот. Здесь следует «Hello, World!» программа и простая программа для вывода файла на монитор. [5] Похожий код был напечатан в Houston Chronicle . [1]

  • :) представляет собой новую строку (\n)
  • :> представляет вкладку (\t)
  • :o представляет символ колокольчика (\a)
  • :" представляет собой буквальную двойную кавычку ("")
  • :: представляет одно буквенное двоеточие (:)
  • :(<hex>) преобразует один шестнадцатеричный код Unicode в кодировку локальной среды (например, UTF-8 ).
  • :{<переменная>} интерполирует значение включенной переменной, представленной в виде строки.
  • :[<имя символа>] преобразует нормативное имя одного символа Юникода в кодировку локальной среды.
HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
Код Комментарий
HAI [VERSION] Во всех программах LOLCODE HAI («Привет!») представляет программу и указывает версию (хотя на самом деле она еще не используется).
CAN HAS [LIBRARY]? Во многих языках программирования одним из первых операторов будет включение библиотеки для общих функций, таких как ввод и вывод. Обычно это включается вызовом, например #include <stdio.h> ( stdio означает стандартную библиотеку ввода/вывода). Эта команда представляет собой насмешливое искажение этого: она спрашивает, доступна ли библиотека, получает ее, если это возможно, и вызывает исключение, если нет. [6] Он нужен в первую очередь для правдоподобия — фактически он игнорируется в текущих реализациях LOLCODE.
VISIBLE [MESSAGE] Выводит сообщение на экран.
KTHXBYE Так же, как HAI знакомит с программой, KTHXBYE (то есть «K», «THX» и «Bye», соединенные вместе, что означает «ОК, спасибо, пока») завершает его.
BTW [MESSAGE] Чтобы написать однострочный комментарий в LOLCODE, вы используете BTW ключевое слово. Комментарии игнорируются компилятором и пишутся для лучшего понимания программы.
OBTW [MESSAGE]TLDR Подобно BTW ключевое слово, OBTW Ключевое слово отмечает многострочный комментарий, комментарий, занимающий несколько строк. В ЛОЛКОДЕ OBTW Ключевое слово означает начало многострочного комментария, а ключевое слово TLDR ключевое слово завершает его.
HAI 1.2
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
    AWSUM THX
        VISIBLE FILE
    O NOES
        INVISIBLE "ERROR!"
KTHXBYE

[5]

В этом примере команды открытия файла ( PLZ OPEN FILE "NAME"?— «Пожалуйста, откройте этот файл?») и обработка ошибок ( AWSUM THX— «Отлично, спасибо!» и O NOES— «О нет!») представлены.

Другие команды включают в себя I HAS A variable для объявления переменных, variable R value («значение переменной [есть/являются/существует]») для их назначения, отправки сообщений об ошибках во внешний интерфейс через INVISIBLE вместо VISIBLE, и BTW («кстати») для обозначения комментария, заставляя анализатор игнорировать остальную часть строки.

Петли создаются с помощью IM IN YR ''label'' (вдохновлено мемом «Я в твоем существительном , глагол ing yr родственное существительное » LOLcat ) и закончилось словами IM OUTTA YR ''label''. Циклы можно разорвать с помощью ключевого слова ENUF («достаточно») или в более старых версиях, GTFO. [7] Циклы также могут завершаться условным оператором IZ команду, как показано в следующем примере.

HAI 1.0
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
    UP VAR!!1
    VISIBLE VAR
    IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE

[5]

Эта простая программа отображает числа 1–11 и завершает работу (начиная со спецификации 1.0). Та же программа, что и в спецификации 1.2 (при условии, что VAR начинается с 0):

HAI 1.2
CAN HAS STDIO?
IM IN YR LOOP UPPIN YR VAR TIL BOTH SAEM VAR AN 10
    VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOP
KTHXBYE
HAI 1.0
CAN HAS STDIO?
VISIBLE "U SEE THIS"

BTW VISIBLE "U SEE NOTHING"

OBTW
VISIBLE "U SEE NOTHIN"
VISIBLE "U STIL SEE NOTHIN"
TLDR

VISIBLE "U SEE THIS"
KTHXBYE

Приведенный выше пример вернет следующее:

U SEE THIS
U SEE THIS

Это потому, что строка 3 выводит U SEE THIS но строка 5 игнорируется, поскольку она закомментирована BTW ключевое слово. Строки 8 и 9 не выполняются, поскольку они находятся в многострочном комментарии, который начинается в строке 7 и заканчивается в строке 10. Строка 12 выводит результаты. U SEE THIS и строка 13 завершает программу.

Реализации

[ редактировать ]

Самый последний и современный интерпретатор языка LOLCODE — lci, написанный на C Джастином Меза. Он эффективно интерпретирует LOLCODE на различных платформах. [8]

Первой реализацией LOLCODE был парсер PHP , написанный Джеффом Джонсом. [9] [10] Веб-сайт парсера также был первым веб-сайтом, использующим LOLCODE в качестве реального языка веб-скриптов. Будучи открытым исходным кодом с лицензией в стиле BSD, он был разветвлен и использовался несколькими веб-сайтами для реализации сценариев LOLCODE. Победившая презентация Pecha Kucha на PHP Works 2008 была посвящена этому парсеру. [11] [12]

Существует .NET- компилятор для LOLCODE, написанный Ником Джонсоном. [13] и участвовал в Microsoft для разработчиков на конференции TechEd 2007 (Австралия). обучающих семинарах [14] [15] [16]

PL/LOLCODE, проект, возглавляемый Джошем Толли, делает LOLCODE доступным в качестве серверного языка программирования внутри PostgreSQL. [17]

Microsoft Dynamic Language Runtime имеет реализацию LOLCODE для целей тестирования. [18]

lolcode-java (грамматика/интерпретатор Java для языка программирования LOLCODE) также доступен [19] но, похоже, он еще не соответствует спецификации версии 1.3.

LOLCODE в JavaScript . Также доступен переводчик [20]

также включен компилятор LOLCODE В виртуальную машину Parrot в качестве одного из языков, демонстрирующих использование инструментов компилятора Parrot. [21]

Компилятор, виртуальная машина и отладчик, созданные Piper для языка LoLCode 1337, написанного на C. [22]

Можно найти версию для параллельных и распределенных вычислений. [23]

[ редактировать ]

LOLCODE также вдохновил LOLPython, написанный Эндрю Далком. LOLPython использует синтаксис, вдохновленный LOL, аналогичный синтаксису LOLCODE, но в стиле Python. Он работает путем перевода исходного кода LOLPython в код Python. [24]

ArnoldC — это ответвление LOLCODE, которое заменяет lolspeak цитатами из разных фильмов Арнольда Шварценеггера . [25]

  1. ^ Перейти обратно: а б Дуайт Сильверман (6 июня 2007 г.). «Я пишу в вашей газете колонку» . Хрон.com . Проверено 6 июня 2007 г.
  2. ^ «Вычислительный факультет Ланкастерского университета – Новости» . Ланкастерский университет, компьютерный факультет. Архивировано из оригинала 28 мая 2009 г. Проверено 9 июня 2009 г.
  3. ^ Гамак, Энн (1 мая 2008 г.). «Новая слава: интернет-знаменитость» . CNN . Архивировано из оригинала 30 апреля 2009 г.
  4. ^ Паукообразный. «Доказательство того, что LOLCode завершен по Тьюрингу: интерпретатор BrainF*** в LOLCode» . forum.lolcode.com. Архивировано из оригинала 11 июля 2007 г. Проверено 5 октября 2008 г.
  5. ^ Перейти обратно: а б с Адам Линдси (25 мая 2007 г.). «Главная страница LOLCODE» . лолкод.com. Архивировано из оригинала 2 октября 2007 г. Проверено 2 октября 2007 г.
  6. ^ «ключевые слова:может-хас · LOLCODE» . Архивировано из оригинала 6 февраля 2008 г. Проверено 10 февраля 2008 г.
  7. ^ «СОРН.нет» . Архивировано из оригинала 16 февраля 2009 года . Проверено 7 ноября 2007 г.
  8. ^ «ЛОЛКОД + lci» .
  9. ^ «Первый комментарий парсера» . Линдсей.at. Архивировано из оригинала 19 мая 2009 г. Проверено 9 июня 2009 г.
  10. ^ «Парсер LOLCODE от Tetraboy» . Tetraboy.com. Архивировано из оригинала 27 февраля 2009 г. Проверено 9 июня 2009 г.
  11. ^ « Лучший веб-язык: слайды LOLCODE» . Slideshare.net. 7 марта 2009 года . Проверено 9 июня 2009 г.
  12. ^ «PHP работает» . mtacon.com . Проверено 4 ноября 2014 г.
  13. ^ Компилятор LOLCODE .NET в Google Code
  14. ^ TechEd, день 2: Microsoft объявляет о поддержке LOLCode , Лун Чжэн
  15. ^ LOLcode в следующей Visual Studio? Для молодых и веселых котиков NetworkWorld.com
  16. ^ «Видео презентации LOLCODE на TechEd 2007» . Блип.тв. 17 августа 2007 г. Архивировано из оригинала 5 февраля 2009 г. Проверено 9 июня 2009 г.
  17. ^ PL/LOLCODE. Архивировано 28 ноября 2010 г. в Wayback Machine , pgFoundry.
  18. ^ Глубокий ДЛР , Джон Лам и Мартин Мали
  19. ^ «Интерпретатор грамматики лолкода, написанный на Java» .
  20. ^ «Лолкод» . Fullvolume.co.uk . Проверено 9 июня 2009 г.
  21. ^ «Молния-Попугай» . лолкод.com. Архивировано из оригинала 22 марта 2009 г. Проверено 20 июня 2009 г.
  22. ^ «LoLCode 1337» .
  23. ^ «Параллельные и распределенные вычисления с LOLCODE» .
  24. ^ «ЛОЛПитон» . Dalkescientific.com. 01.06.2007 . Проверено 9 июня 2009 г.
  25. ^ «АрнольдС» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2e9a1637cc2d95c9a6e6cbff77f89871__1721311380
URL1:https://arc.ask3.ru/arc/aa/2e/71/2e9a1637cc2d95c9a6e6cbff77f89871.html
Заголовок, (Title) документа по адресу, URL1:
LOLCODE - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)