微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala如何映射到jvm字节码的良好参考

有没有关于 Scala编译器如何将各种 Scala功能映射到字节码的好文章

快速谷歌出现了David Pollak 2009年演讲的支持材料

https://github.com/dpp/jvm_summit_2009/blob/master/scala_fancy_pants.pdf

但我怀疑这可能是过时的和不完整的.

我可以尝试通过scalap javap自己收集这些数据,但是从别人的努力和洞察中获益将会很愉快.

解决方法

在Scala REPL上,使用:javap -c查看生成的字节码.

例如:

scala> class Bytes { def a = println("hello") }
defined class Bytes

scala> :javap -c Bytes
Compiled from "<console>"
public class Bytes extends java.lang.Object{
public void a();
  Code:
   0:   getstatic   #13; //Field scala/Predef$.MODULE$:Lscala/Predef$;
   3:   ldc #15; //String hello
   5:   invokevirtual   #19; //Method scala/Predef$.println:(Ljava/lang/Object;)V
   8:   return

public Bytes();
  Code:
   0:   aload_0
   1:   invokespecial   #24; //Method java/lang/Object."<init>":()V
   4:   return

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐