Зеленое счастье и никаких наркотиков!

пятница, апреля 06, 2012

Обленился

      Последние три - четыре дня ленюсь. Наверно сказывается прошлая неделя, когда я впахивал как проклятый над гнусными роботами :). Ну что, поленюсь-поленюсь, и займусь наконец дипломом. 
      Сейчас в голове проснулась какая-то глупая идея, сделать сетевую игру, но побеждает здравая мысль, сто надо сперва диплом закончить, а еще подлых роботов и по реактору нарезку сделать :). Хе-хе. Так - как сделать сетевую игру не представляется возможным, я реши придумать новый язык программирования :)! Уа-ха-ха! Кстати, картинку нынче я взял из интернета, так что (хотя обычно сам рисую).


      Язык программирования я придумываю уже не первый раз. Первым делом нужно определиться какие цели мы преследуем. Язык должен быть простым, C или ECMAScript образным, легким в освоении и разборе. А не таким как питон, раби и иже с ними. Т.к. объектно ориентированность нам побоку, язык будет функциональным. Основная цель - возвращение результата работы функции. Т.е. формально программа на этом языке должна быть функцией, которая возвращает результат. Реализация языка будет на AS3 (бе-бе-бе). Значит мы каким-то макаром вызываем нашу программу, а она возвращает нам результат. Язык будет называться Hinchin - наверно это что-то из китайского мне в голову пришло xD ;). 
Перейдем к формальностям языка Hinchin 0.01:

Типы данных - их мало, т.к. много пока и не требуется:
  1. Число [8 байт] - Number.
  2. Булево значение [1 байт] - Boolean - правда, ложь.
  3. Контейнер [неизвестно] - переменная любого типа полученная из AS3, в математике не участвует, т.е. неизменно во время работы функции, может быть только возвращен. Это может быть, например, функция, массив, строка и т.д.
  4. пусто - пустое значение, соответсвует void, undefined и т.п.
Пока на этом все, в будущем, возможно расширю это дело. Хотя, в целом, для тех задач, для которых я придумываю этот язык, больше может и не понадобится.

Объявление переменных:
  1. э = 0;
  2. ю = ложь;
  3. я = аргументФункции;
Математика:
  1. + - сложение
  2. - - вычитание
  3. / - деление
  4. * - умножение
  5. && - логическое и
  6. || - логическое или
  7. >
  8. >=, <= - вариации больше или равно, меньше или равно
  9. % - деление с остатком
... и другие, которые я забыл указать, но легко реализовать (пока только те, которые с двумя аргументами).
Управляющие операторы:
  1. если ( ) - условный оператор, скобки обязательно, внутри математическое выражение, возвращающее результат типа number (<=0 - ложь, > - правда);
  2. для (выражение; выражение; выражение) - ну вы поняли ;)
  3. иначе - оператор, передающий управление следующему за ним блоку кода, если оператор если получает ложь.
  4. стоп - останавливает выполнение работы блока кода, и поднимает точку управления на блок выше.
  5. продолжить - прерывает работу блока кода, и, если это был цикл, переходит к следующей итерации.
  6. вернуть выражение - возвращает значение вычисленное в выражении
  7. пока - до тех пор пока значение правда работает.
... другие, которые я не стал указывать, т.к. этого минимума пока хватит, а в дальнейшем можно будет дополнить.

Прочее:
  1. константа имя = выражение - объявление константы
  2. {..} - блок кода
  3. (...) - смена приоритета операции в выражении
  4. ; - пустой оператор.
По любому что-то да забыл, например побитовый сдвиг и иже с ним. Никогда не пользовался ими :). Ну вот и все, пойду еще часик почитаю про реализацию подобного извращения ;).

2 комментария:

  1. Мсье знает толк в извращениях...

    ОтветитьУдалить
  2. > я решил придумать новый язык программирования
    Моя первая ассоциация - вот эта картинка :-)
    http://www.yaplakal.com/uploads/post-2-12035890365497.jpg

    ОтветитьУдалить