Информация

Обсуждало 6 человек

Osoyan Interpreter Parse Language

Логика и программирование
17 февраля 2012 в 16:29:03

OIPL (Osoyan Interpreter Parse Language) - это супер язык нового поколения хД. Я начал разрабатывать его вчера от нефиг делать. И получилось что-то инетресное. Вот примеры кода:

$a = 2; $a^^; if ($a == 4) { jump(6); } $b = 0; $b += 2; $a = 2 ^ 2 ^ 2; $g = 25; $c = <$a, $b, $g>; return $c;


В ответ мы получим "16,NaN,25" почему NaN? потому что по условию сработала функция jump которая перепрыгнула на 6 строчку кода. В языке реализованые переменные, математические операции, циклы, массивы и условия. Кому интересно отписываемся. Вообще все делаю потому что инетресно. Мож кому то и понадобиться. Еще одна интересна особенность. Код выполняется в функции. Пример:

LOL = CODE.EXECUTE("return 2 + 2 * 2;"); в лоле будет число 6


Переменные:
$a = 0; // число $d = "sosi u menya 5000 raz!"; // строка $b = <0, 0>; // массив $c = |0,0:1,1|; // матрица


Массивы:
$c = 5; $arr = <0,1,2+2,$c>; return $arr; //ответ 0,1,4,5


Циклы:
$a = 2; loop(3) { $a^^; }; return $a; //ответ 256


Матрицы:
$a = |1,2,3:4,5,6:7,8,9|; $a[0:0] = 2; return $a; //ответ 2,2,3,4,5,6,7,8,9


Арифметические операции:
$a++; // +1 $a--; // -1 $a**; // умножение на 2 $a//; // деление на 2 хД $a^^; //воздведение в 2 степень $a += 2; //+2 $a -= 2; //-2 $a *= $a; // умножение $a /= 2; // деление $a ^= 2; // возведение в степень $a ?= 2; //увеличение на случайное число от 0 до n


Условия:
if ($a == $b) { echo "dead"; }; if (5 > 6) { echo "please kill me O_o"; };


Функции:
#suck() { back $a ^ $b; }; $a = suck();


Низкоуровневые операции:
jump(n); // переход на заданную строчку кода xor(m,n); // меняет значение переменных между друг другом

Обновлено: 19 февраля 2012 в 16:05:56

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

11 января 2013 в 10:54:51

напиши язык на ассемблере хДД

11 января 2013 в 00:20:38

А на что смотреть то? хД исходники хз остались или нет надо поискать, но реализация не очень крутая, все по строкам и т.д. Я хочу как нибудь создать свой компилятор и запуск программ через байткод хД

10 января 2013 в 23:59:07

Не, не по*уй))) Было бы интересно посмотреть, а еще интересней взглянуть на исходники)))

10 января 2013 в 23:04:06

Всеееееммм по*уй...... хДДД

20 февраля 2012 в 03:16:50



фуууух пришлось изрядно попотеть, на радио уже 488 минут проиграно, примерно стока времени я фиксил парсер, но оно того стоило, теперь работает на максималке все! Вложенные блоки форева!

$a = 0; $b = 0; echo "??????????????????????????????????????"; echo "? ?"; echo "? Osoyan Interpreter Parse Language ?"; settextcolor(00FF000); loop(3) { echo "? ?"; } echo "? Puresento ?"; loop(6) { echo "? ?"; } echo "??????????????????????????????????????"; echo ""; echo "input x:"; stdin :: $a; echo "out x:" + $a; return 1;


Ну и супер быстрая переменная $__i из цикла

19 февраля 2012 в 22:46:14

Добавил обработку опроса клавиатуры

stdin :: $a;

записывает введенную строку в переменную $a

19 февраля 2012 в 16:07:50

Функции теперь могут возвращать результат

$a = 2; $b = 8; #suck() { back $a ^ $b; }; $a = suck(); return $a;


вернет над 256, для возвращения результата используется ключевое слово back, сделал вместо return что бы не было конфиликтов, но пока эта технология еще не доработана, тость можно написать так

$a = 2; $b = 8; #suck() { back $a ^ $b; }; back 100; $a = suck(); return $a;


И он вернем нам 100 хД

19 февраля 2012 в 01:52:20

Добавил новый арифметический оператор

?= задает прибавляет рандомное число от 0 до заданного, пример

$a ?= 5; прибавляет к а рандомное число от 0 до 5, чоб работать с отрицательными числа, тут мона использовать просто отрицательное число.

19 февраля 2012 в 01:49:57

Еще один пример кода

$a = 0; loop(10) { $a++; if ($a < 5) { echo $a; }; }; return 0;


Так же прекрасно работает, выводит числа от 0 до 4, переработал цикл, теперь он работает "правильно" до этого я лишь вызывал заданное количество раз обработку определенного участка кода, теперь же просто позиция обработки кода перемещается на заданный участок кода и проходит его заданное количество раз. Внутренние цикли пока не поддерживаються.

19 февраля 2012 в 01:01:53

Вот пример работы кода

if (2 > 1) { echo "soso"; if (3 > 2) { echo "2"; echo "3"; }; }; #suka() { echo "gr"; echo "gr"; }; suka(); return 3;


Замечательно работает без ошибок и выводит

soso
2
3
gr
gr
3

19 февраля 2012 в 01:00:00

Добавил вложенные условия и пофиксил работу функций, фуух не легкое это но интересное дело, все таки на учить С++ и писать свой язык хД

17 февраля 2012 в 21:30:39

Теперь есть различия между числами и строками

17 февраля 2012 в 19:51:20

GothX, не придирайся.

17 февраля 2012 в 19:23:46

Goli, ты знаешь, каково это - помирать от передозировки героином?

17 февраля 2012 в 19:19:01

Dracyla, ты прекрасно понимаешь, что я опис?лся.
Maldan, не знаешь &#151; повод узнать.

17 февраля 2012 в 18:39:48

о_0 Уважаемый гражданин, рисуй лучше


Для планшета с эмкостным экраном мне нужен специальный стилус (( так чо я пока отложил покупку.

17 февраля 2012 в 18:38:54

Goli я не знаю С++ на таком хорошем уровне что бы писать подобное это раз, во вторых я работаю больше всего во Flash поэтому именно в нем мне нужно будет его использовать, прикольно же во флеше писать программы ХД

17 февраля 2012 в 18:30:43

Goli, не на glash, а на flash

17 февраля 2012 в 18:28:49

Интерпретатор на glash? Maldan, не позорься, ты же знаешь C++.

17 февраля 2012 в 18:02:45

о_0 Уважаемый гражданин, рисуй лучше

17 февраля 2012 в 17:08:01

естественно хД

17 февраля 2012 в 17:01:06

интерпретатор на флэше, я полагаю?)
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов