Доброго времени суток. Думаю многие люди, хоть каким-то боком относящиеся к программированию хоть раз в жизни слышали об эзотерических языках программирования. Тот же 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
Подробнее вы можете ознакомится с этим языком на странице автора.
Автор: GreamDesu