Omgrofl
- Дата создания:
- 2006
- Парадигма:
- Типизация:
- Реализации и версии (свернуть все | развернуть все):
Omgrofl — эзотерический язык программирования, команды которого являются словами интернет-сленга (название языка происходит от двух таких слов — omg и rofl).
Omgrofl был создан в 2006 году Юраем Борза (Juraj Borza) и не пользуется большой известностью. На момент написания этой статьи язык практически мертв — авторская реализация и большинство инструментов для работы с языком утеряны, оставшиеся реализации не поддерживают все конструкции языка. Тьюринг-полнота языка остается недоказанной, хотя наличие в языке очереди/стека позволяет предположить, что он является Тьюринг-полным.
Язык позволяет использовать именованные переменные типа byte, условные выражения, бесконечные циклы и циклы типа for, что нетипично для эзотерического языка. Впрочем, арифметические действия над переменными и функции ввода-вывода выполнены в стиле Brainfuck. Также язык позволяет оперировать со стеком.
Команды языка
-
w00t ...
— комментарий до конца строки -
lol, lool, ...
— имена переменных должны быть словомlol
с произвольным количеством буквo
-
iz
— присвоение значения переменной:lol iz 0
-
lmao lol
— увеличивает значение переменной на 1 -
roflmao lol
— уменьшает значение переменной на 1 -
lol to /dev/null
— эквивалентноlol iz 0
-
liek
иuber
— проверка того, что выражение равно и больше второго, соответственно -
nope
— отрицание условия -
wtf <condition> ... brb
— условный переход; если условие истинно, выполняются все команды до соответствующегоbrb
-
rtfm ... brb
— бесконечный цикл -
4 <varname> iz <first> 2 <last> ... brb
— циклfor
с инкрементом/декрементом на 1. -
tldr
— выход из цикла -
stfu
— выход из программы (в конце программы не обязателен) -
stfw lol
— читает символ и помещает его ASCII-код в переменную -
rofl lol
— выводит символ, чей ASCII-код хранится в переменной -
n00b lol
— добавляет на вершину стека значение переменной -
l33t lol
— извлекает значение с вершины стека -
haxor lol
— извлекает значение со дна стека (используя его как очередь)
Элементы синтаксиса:
Комментарий до конца строки | w00t |
---|---|
Регистрозависимость | нет |
Регулярное выражение идентификатора переменной | l[o]+l |
Присваивание значения переменной | varname iz value |
Равенство | uber |
Сравнение | liek |
Если - то | wtf <condition> ... brb |
Бесконечный цикл | rtfm ... brb |
Цикл for - next для диапазона целых чисел с инкрементом на 1 | 4 lol iz 1 2 10 ... brb |
Цикл for - next для диапазона целых чисел с декрементом на 1 | 4 lol iz 10 2 1 ... brb |
Примеры:
Hello, World!:
Пример для версий Harder's OmgroflСообщение выводится посимвольно, с использованием ASCII-кодов символов. Затем программа останавливается.
rofl 72
rofl 101
rofl 108
rofl 108
rofl 111
rofl 44
rofl 32
rofl 87
rofl 111
rofl 114
rofl 108
rofl 100
rofl 33
stfu
Комментарии
]]>blog comments powered by Disqus
]]>