Некий Ihartikk разработал шуточный язык программирования, основанный на фразах Арнольда Шварцнеггера. Кто знает, может когда-нибудь Т-1000 будет написан именно на этом языке программирования, а пока рассмотрим базовый синтаксис.
Как и любой C-подобный язык программирования ArnoldC имеет точку вхождения - подобие функции main(). Выглядит это так:
IT'S SHOWTIME
[тело программы]
YOU HAVE BEEN TERMINATED
Впринципе, можно оставить тело пустым. Тогда Арни будет делать ничего.
Например, Hello World, представленный разработчиком выглядит следующим образом:
IT'S SHOWTIME
TALK TO THE HAND "hello world"
YOU HAVE BEEN TERMINATED
Как можно догадаться, он выводит фразу "hello world".
Переменные в ArnoldC могут быть только 16-битными знаковыми INT и никак иначе, тем не менее, как видно из HelloWorld-а, строковые константы работают. ArnoldC - строго типизированный ЯП, поэтому переменные надо определять (у нас же обилие типов, незабываем). Делается это следующим образом:
HEY CHRISTMAS TREE variablename
YOU SET US UP initialvalue
Действия над переменными нужно описывать внутри следующей конструкции:
GET TO THE CHOPPER myvar
HERE IS MY INVITATION firstOperand
[операции]
ENOUGH TALK
После GET TO THE CHOPPER идет переменная которой в итоге присвоится значение. HERE IS MY INVITATION помещает операнд в верх стека и последующие действия делает именно с ним. Для примера рассмотрим формулу X =(10 + Y) * 3 + 5:
GET TO THE CHOPPER X
HERE IS MY INVITATION 10
GET UP Y
YOU'RE FIRED 3
GET UP 5
ENOUGH TALK
Мы присвоим результат перменной X, сначала взяв 10, прибавив к нему Y, умножив результат на 3 и прибавив ко всему этому 5.
BECAUSE I'M GOING TO SAY PLEASE value
[statements]
BULLSHIT
[statements]
YOU HAVE NO RESPECT FOR LOGIC
Эта конструкция равносильна обычному if (value) {...statements...} else {...statements...}. Конечно, блок Else можно убрать, он не обязательный.
Выполнить программу можно с помощью Java-интерпретатора, предоставляемым автором языка.
wget http://lhartikk.github.io/ArnoldC.jar
echo -e "IT'S SHOWTIME\nTALK TO THE HAND \"hello world\"\nYOU HAVE BEEN TERMINATED" > hello.arnoldc
java -jar ArnoldC.jar hello.arnoldc
ArnoldC поддерживает и остальную арифметику, циклы, логические операторы и даже функции (они тут названы методами). Автор любезно предоставляет нам Вики для изучения синтаксиса, а в конце дает пару примеров программ. Конечно, этот язык нельзя использоаться в реальных условиях, но как развлечение он вполне себе подойдет.
Проект на GitHub: https://github.com/lhartikk/ArnoldC
Вики ArnoldC: https://github.com/lhartikk/ArnoldC/wiki/ArnoldC