Последние три - четыре дня ленюсь. Наверно сказывается прошлая неделя, когда я впахивал как проклятый над гнусными роботами :). Ну что, поленюсь-поленюсь, и займусь наконец дипломом.
Сейчас в голове проснулась какая-то глупая идея, сделать сетевую игру, но побеждает здравая мысль, сто надо сперва диплом закончить, а еще подлых роботов и по реактору нарезку сделать :). Хе-хе. Так - как сделать сетевую игру не представляется возможным, я реши придумать новый язык программирования :)! Уа-ха-ха! Кстати, картинку нынче я взял из интернета, так что (хотя обычно сам рисую).
Язык программирования я придумываю уже не первый раз. Первым делом нужно определиться какие цели мы преследуем. Язык должен быть простым, C или ECMAScript образным, легким в освоении и разборе. А не таким как питон, раби и иже с ними. Т.к. объектно ориентированность нам побоку, язык будет функциональным. Основная цель - возвращение результата работы функции. Т.е. формально программа на этом языке должна быть функцией, которая возвращает результат. Реализация языка будет на AS3 (бе-бе-бе). Значит мы каким-то макаром вызываем нашу программу, а она возвращает нам результат. Язык будет называться Hinchin - наверно это что-то из китайского мне в голову пришло xD ;).
Перейдем к формальностям языка Hinchin 0.01:
Типы данных - их мало, т.к. много пока и не требуется:
- Число [8 байт] - Number.
- Булево значение [1 байт] - Boolean - правда, ложь.
- Контейнер [неизвестно] - переменная любого типа полученная из AS3, в математике не участвует, т.е. неизменно во время работы функции, может быть только возвращен. Это может быть, например, функция, массив, строка и т.д.
- пусто - пустое значение, соответсвует void, undefined и т.п.
Пока на этом все, в будущем, возможно расширю это дело. Хотя, в целом, для тех задач, для которых я придумываю этот язык, больше может и не понадобится.
Объявление переменных:
- э = 0;
- ю = ложь;
- я = аргументФункции;
Математика:
- + - сложение
- - - вычитание
- / - деление
- * - умножение
- && - логическое и
- || - логическое или
- >
- >=, <= - вариации больше или равно, меньше или равно
- % - деление с остатком
Управляющие операторы:
- если ( ) - условный оператор, скобки обязательно, внутри математическое выражение, возвращающее результат типа number (<=0 - ложь, > - правда);
- для (выражение; выражение; выражение) - ну вы поняли ;)
- иначе - оператор, передающий управление следующему за ним блоку кода, если оператор если получает ложь.
- стоп - останавливает выполнение работы блока кода, и поднимает точку управления на блок выше.
- продолжить - прерывает работу блока кода, и, если это был цикл, переходит к следующей итерации.
- вернуть выражение - возвращает значение вычисленное в выражении
- пока - до тех пор пока значение правда работает.
... другие, которые я не стал указывать, т.к. этого минимума пока хватит, а в дальнейшем можно будет дополнить.
Прочее:
- константа имя = выражение - объявление константы
- {..} - блок кода
- (...) - смена приоритета операции в выражении
- ; - пустой оператор.
По любому что-то да забыл, например побитовый сдвиг и иже с ним. Никогда не пользовался ими :). Ну вот и все, пойду еще часик почитаю про реализацию подобного извращения ;).
Мсье знает толк в извращениях...
ОтветитьУдалить> я решил придумать новый язык программирования
ОтветитьУдалитьМоя первая ассоциация - вот эта картинка :-)
http://www.yaplakal.com/uploads/post-2-12035890365497.jpg