1
bhuztez 2012-09-18 11:33:06 +08:00
gcj啊gcj
|
2
reus 2012-09-18 11:33:29 +08:00
gnu的GCJ貌似可以,搜java native compiler出来挺多的
|
4
fly2never 2012-09-18 11:38:48 +08:00
不知道能不能弄到llvm上去
|
8
yuelang85 2012-09-18 12:30:28 +08:00
语言与实现无关这话到底是什么意思?
至少python和C同逻辑的实现就完全不一样,因为python原生支持更多更复杂的数据结构,而c只支持原始的那几个 |
9
Alex_L 2012-09-18 12:54:09 +08:00 1
@yuelang85 CPython解释器就是用C写的。语言与实现无关的意思是……严格来说,语言只包含语法层面上的东西(GC、闭包、反射等特性也是在这个层面,你说的数据结构也是在这个层面),而一门语言的编译器或解释器可以有不同实现方式。比如Python就有CPython、Jython,IronPython,PyPy等实现。
|
12
yyfearth 2012-09-18 13:46:05 +08:00
有个比较麻烦的问题就是很多动态语言有动态特性需要运行时的支持,这样就不是简单的编译成静态的机器码就可以解决的,除非编译出来的代码自身带上这个运行时。
|
13
xuan_lengyue 2012-09-18 16:50:41 +08:00
gcj啊 巨慢无比
|
14
vicalloy 2012-09-18 17:50:22 +08:00
gcj有限制,并不是所以程序都可以编译。而且编译后也不会比sun的jdk快多少(编译了个简单的for循环程序,比sun jdk慢),可能会省些内存。
|
15
bhuztez 2012-09-18 18:23:21 +08:00
@vicalloy 没啥限制吧。连SWT程序都是可以编译的,没遇到啥问题,就是参数比较奇怪,折腾过一次后来就忘了,再也没想起来。for循环两个几乎是一样快的,估计是你gcj编译的时候没-O2吧
|
18
pppcat 2012-09-18 21:15:35 +08:00
因为jvm够快了。再编译字节码没有很多实际意义。jvm现在的性能瓶颈不在这里。
|