Блог веб-разработчика v 1.0.0
Symfony2, AngularJS, React, Gulp, PhpStorm и много других страшных слов

Пишем код фразами Арнольда Шварцнеггера

10 лет назад
5139 просмотров
Новые технологии Развлечения

ArnoldC - язык программирования фразами Арнольда ШварцнеггераНекий Ihartikk разработал шуточный язык программирования, основанный на фразах Арнольда Шварцнеггера. Кто знает, может когда-нибудь Т-1000 будет написан именно на этом языке программирования, а пока рассмотрим базовый синтаксис.

Hello World

Как и любой 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

Что еще почитать
Раздам два инвайта на тестирование Atom.io
10 лет назад
3952 просмотра
Новый текстовый редактор от команды GitHub - Atom сейчас проходит бета тестирование. Просто так раздам два инвайта обладателям OS X 10.8+ для участия в бета-тесте, т.к. сам не пользуюсь данной ОС.
История обращения в ИТ сервис
10 лет назад
6998 просмотров
Сгорела материнка, бывает. Новую покупать лень - вдруг эту можно починить. Обращусь я, пожалуй, в какой-нибудь сервис-центр.
10 ступеней веб-разработки
10 лет назад
11809 просмотров
Все больше людей стремятся стать веб-разработчиками, веб-программистами. Кто-то говорит, что это сложно и скучно, а кто-то: легко и довольно весело. Так что же реально ждет нас на этой лестнице? Представляю вашему вниманию десять ступененей моего видения развития веб-разработчика.