![]() |
1
4
据我所知,在更高的层次上,两个虚拟机实际上非常相似:两个虚拟机都是基于堆栈的经典机器,具有很大程度的高级操作(例如,虚拟方法调度是一个操作码)。也就是说,如果需要,clr允许您深入到金属元素,因为它具有带算术的原始数据指针、原始函数指针、联合等。它还具有适当的尾调用。因此,如果语言的实现需要上述任何一种(例如,scheme spec强制进行tailcalls),或者如果拥有这些特性对语言的实现具有显著的优势,那么您可能希望使用clr方法。
另一个优点是,您可以使用stock api在那里发出字节码。-
使用JVM,您得到的两个主要优势是更好的可移植性,以及字节码本身可以说更简单(因为特性更少)。 |
![]() |
2
1
我遇到的另一个选项是运行夏普库,它可以在运行时使用emit生成msil代码。但以一种更友好的用户方式,这更像C。图书馆的最新版本可以在这里找到。 http://code.google.com/p/runsharp/ |
![]() |
3
0
在.NET中,可以使用Reflection.Emit命名空间生成MSIL代码。 请参阅msdn链接: http://msdn.microsoft.com/en-us/library/3y322t50.aspx |
![]() |
Sam · jvm如何优化循环代码? 6 年前 |
![]() |
pushpavanthar · 纱线中的调谐火花作业 6 年前 |
![]() |
Ashish K · 在Groovy中将字符串参数传递给对象方法参数 6 年前 |
![]() |
St.Antario · 在Java中侦听多个目录以创建文件 6 年前 |
![]() |
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 6 年前 |