Доброго времени суток, Хабр. Думаю многие люди, хоть каким-то боком относящиеся к программированию хоть раз в жизни слышали об эзотерических языках программирования. Тот же Brainfuck.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++ .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++. ------.--------.>+.>.
От одного только вида бросает в дрожь, но кто же мог подумать, что найдется человек, который сможет создать язык программирования из цитат известного голливудского актера.
Финский программист Лори Хартикка (Lauri Hartikka) опубликовал на Github описание и компилятор языка программирования ArnoldC. В качестве команд в ArnoldC используются цитаты героев Арнольда Шварценеггера.
Пример кода
BECAUSE I'M GOING TO SAY PLEASE a TALK TO THE HAND "a is true" BULLSHIT TALK TO THE HAND "a is not true" YOU HAVE NO RESPECT FOR LOGIC
Причем язык очень даже многофункционален, при помощи него мы можем совершать простейшие действия, такие как
Сложение
GET UP operand
Вычитание
GET DOWN operand
Умножение
YOU'RE FIRED operand
Деление
HE HAD TO SPLIT operand
True NO PROBLEMO
If BECAUSE I’M GOING TO SAY PLEASE
Else BULLSHIT
EndIf YOU HAVE NO RESPECT FOR LOGIC
While STICK AROUND
EndWhile CHILL
PlusOperator GET UP
MinusOperator GET DOWN
MultiplicationOperator YOU’RE FIRED
DivisionOperator HE HAD TO SPLIT
EqualTo YOU ARE NOT YOU YOU ARE ME
GreaterThan LET OFF SOME STEAM BENNET
And KNOCK KNOCK
MethodArguments I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE
Return I’LL BE BACK
EndMethodDeclaration HASTA LA VISTA, BABY
CallMethod DO IT NOW
AssignVariableFromMethodCall GET YOUR ASS TO MARS
EndMain YOU HAVE BEEN TERMINATED
Print TALK TO THE HAND
AssignVariable GET TO THE CHOPPER
SetValue HERE IS MY INVITATION
EndAssignVariable ENOUGH TALK
ParseError WHAT THE FUCK DID I DO WRONG
В примере ниже мы можем видеть, как реализованы логические операторы.
a = (b || c) && d
GET TO THE CHOPPER a HERE IS MY INVITATION b CONSIDER THAT A DIVORCE c KNOCK KNOCK d ENOUGH TALK
IT'S SHOWTIME HEY CHRISTMAS TREE result1 YOU SET US UP 0 HEY CHRISTMAS TREE result2 YOU SET US UP 0 HEY CHRISTMAS TREE result3 YOU SET US UP 0 HEY CHRISTMAS TREE result4 YOU SET US UP 0 GET YOUR ASS TO MARS result1 DO IT NOW modulo 9 4 TALK TO THE HAND result1 GET YOUR ASS TO MARS result2 DO IT NOW modulo 4795 87 TALK TO THE HAND result2 GET YOUR ASS TO MARS result3 DO IT NOW modulo 3978 221 TALK TO THE HAND result3 GET YOUR ASS TO MARS result4 DO IT NOW modulo 5559 345 TALK TO THE HAND result4 YOU HAVE BEEN TERMINATED LISTEN TO ME VERY CAREFULLY modulo I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE dividend I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE divisor GIVE THESE PEOPLE AIR HEY CHRISTMAS TREE quotient YOU SET US UP 0 HEY CHRISTMAS TREE remainder YOU SET US UP 0 HEY CHRISTMAS TREE product YOU SET US UP 0 GET TO THE CHOPPER quotient HERE IS MY INVITATION dividend HE HAD TO SPLIT divisor ENOUGH TALK GET TO THE CHOPPER product HERE IS MY INVITATION divisor YOU'RE FIRED quotient ENOUGH TALK GET TO THE CHOPPER remainder HERE IS MY INVITATION dividend GET DOWN product ENOUGH TALK I'LL BE BACK remainder HASTA LA VISTA, BABY
В данном отрывке кода совершается объявление функции по модулю и использование его с основным методом.
HelloWorld.arnoldc
IT'S SHOWTIME TALK TO THE HAND "hello world" YOU HAVE BEEN TERMINATED
Подробнее вы можете ознакомится с этим языком на странице автора.
ссылка на оригинал статьи http://habrahabr.ru/post/214189/