首页> 外文会议>ACM SIGPLAN conference on Programming language design and implementation >Trace-based just-in-time type specialization for dynamic languages
【24h】

Trace-based just-in-time type specialization for dynamic languages

机译:动态语言的基于跟踪的即时类型特化

获取原文

摘要

Dynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs.
机译:动态语言(例如JavaScript)比静态类型的语言更难编译。由于没有具体的类型信息可用,因此传统的编译器需要发出可在运行时处理所有可能的类型组合的通用代码。我们提出了一种用于动态类型语言的替代编译技术,该技术可以在运行时识别频繁执行的循环跟踪,然后动态生成专门针对循环中每个路径上发生的实际动态类型的机器代码。我们的方法提供了廉价的过程间类型专用化,以及一种通过嵌套循环递增地编译懒惰发现的替代路径的优雅而有效的方法。我们已经基于我们的技术为JavaScript实现了动态编译器,并且对于某些基准测试程序,我们测得的速度提高了10倍甚至更多。

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号