Comments 14
Это первый пост про компиляцию, который я прочитал.
Нет, не потому что он хорошо написан, просто дочитал до конца от удивления, что у вас все так складно получилось.
Что вообще за язык вы творите?
У вас же из типов только int.
Как будет представлен double?
А вдруг у вас язык динамически-типизированный?
Тогда эти функции, выполняющие роль операторов, можно сразу выкинуть. Заглушка не более.
В общем получилось довольно неплохо. Если не секрет сколько строк кода это чудо в себя включает?
Хочу сравнить с интерпретатором Лиспа, который сейчас творю.
1.5к строк в интерпретаторе с оптимизацией. А у вас?
В общем с утра прочитаю цикл с самого начала.
Нет, не потому что он хорошо написан, просто дочитал до конца от удивления, что у вас все так складно получилось.
Что вообще за язык вы творите?
У вас же из типов только int.
Как будет представлен double?
А вдруг у вас язык динамически-типизированный?
Тогда эти функции, выполняющие роль операторов, можно сразу выкинуть. Заглушка не более.
В общем получилось довольно неплохо. Если не секрет сколько строк кода это чудо в себя включает?
Хочу сравнить с интерпретатором Лиспа, который сейчас творю.
1.5к строк в интерпретаторе с оптимизацией. А у вас?
В общем с утра прочитаю цикл с самого начала.
-2
круто-круто
В жизни тоже забавно получается:
— приложения для Android пишутся на Java и компилируются в стековый байткод (как MSIL), потому что так проще писать компилятор
— но для того чтобы запустить программу на телефоне, её нужно перевести в другой P-код, dalvik. А там регистровая виртуальная машина!
потому что на телефоне очень туго с производительностью, а машину написали в Гугле. они там умные, им не сложно =)
// жаль ночью постите — никто не прочитает
В жизни тоже забавно получается:
— приложения для Android пишутся на Java и компилируются в стековый байткод (как MSIL), потому что так проще писать компилятор
— но для того чтобы запустить программу на телефоне, её нужно перевести в другой P-код, dalvik. А там регистровая виртуальная машина!
потому что на телефоне очень туго с производительностью, а машину написали в Гугле. они там умные, им не сложно =)
// жаль ночью постите — никто не прочитает
0
1) неплохо бы stdlib.h добавить в заголовки. Раз exit используется.
2)
a=b=88;
b=b+1;
echo(«test4=»,a," ",b,"\n");
3)
r=echo(«Test\n»);
echo(«test=»,r);
2)
a=b=88;
b=b+1;
echo(«test4=»,a," ",b,"\n");
3)
r=echo(«Test\n»);
echo(«test=»,r);
+1
ну с таким «распределителем регистров» 256 регистров в трубу вылетят достаточно быстро =)
у вас вообще получилось почти SSA форма с автоматической протяжкой копий «x = y;» [правда не совсем, все-таки можно потом написать x = expr;" это нарушит SSA свойство… ну и phi-функций нет..]
у вас вообще получилось почти SSA форма с автоматической протяжкой копий «x = y;» [правда не совсем, все-таки можно потом написать x = expr;" это нарушит SSA свойство… ну и phi-функций нет..]
0
(340 строк кода вынесены на tyomitch.net.ru/jsk.y.html, чтобы сохранить размер поста в пределах допустимого.)
Ссылка не работает. А очень жаль.
0
http://web.archive.org/web/20100808093102/http://tyomitch.net.ru/jsk.y.html
0
Sign up to leave a comment.
Компиляция. 6: промежуточный код