[发明专利]简档导向的JIT代码生成有效
| 申请号: | 201210330925.3 | 申请日: | 2012-09-07 |
| 公开(公告)号: | CN103064720A | 公开(公告)日: | 2013-04-24 |
| 发明(设计)人: | L·拉弗雷尼尔;C·曼;J·米亚多维茨;P·莱瑟斯;J·库马尔;A·比亚尼基 | 申请(专利权)人: | 微软公司 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45 |
| 代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 胡利鸣 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 导向 jit 代码 生成 | ||
技术领域
本申请涉及JIT代码生成,尤其涉及简档导向的JIT代码生成。
背景技术
存在许多类型的编程语言。一种形式的编程语言是脚本语言。脚本语言是能够启用对一个或多个应用的控制的编程语言。可用与相关联的应用的语言相同的语言或不同的语言来编写“脚本”或根据脚本语言来生成的程序。尽管应用通常首先被编译为本机机器代码,但是脚本常常是从源代码解释的。
另一种形式的编程语言是动态编程语言。动态编程语言是在运行时期间执行一些其他(不是动态的)编程语言可在编译期间执行的行为的编程语言。这样的行为可包括通过添加新的代码、扩展对象和定义和/或修改类型系统来扩展程序。许多脚本编程语言也是动态编程语言。
Web浏览器是用于呈现网页以供显示的应用。脚本频繁地在网页上运行以便动态地改变它们的内容。客户机侧脚本一般指由web浏览器在客户机侧执行的而非在web服务器上在服务器侧执行的脚本。客户机侧脚本可通过避免与web服务器的一个或多个往返通信来使得网页更易响应于用户输入。
用动态编程语言编写的脚本是难以高效地执行的。例如,(由加利福尼亚州芒廷维市的Mozilla公司开发的)JavaScript是被用在脚本中的非常灵活的示例动态编程语言。在许多JavaScript程序中,JavaScript代码只有一部分被执行,而JavaScript代码甚至更小的部分是在程序启动时运行的。如此,整个代码库的解析不必要地延迟了执行的启动。此外,大多数实际上用JavaScript编写的代码没有充分利用JavaScript语言的灵活性。然而,由JavaScript编译器生成的机器代码被生成以在运行时正确地处理大量可能性,其导致低效的执行。
发明内容
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了用于以高效地方式来执行动态语言中编写的脚本和其它程序的方法、系统和计算机程序产品。脚本可由运行时引擎接收以作为网页或其它文档的一部分来执行。运行时引擎可使用解释器(interpreter)来执行脚本。关于脚本的简档信息在脚本的执行期间由解释器收集。简档信息可被用于确定脚本的哪些部分可通过使用编译器编译这些部分并执行得到的机器代码,而非解释脚本的这些部分,来被更高效地执行。由此,脚本的一些部分可使用解释器被执行,而脚本的其它部分可使用编译器来编译并执行。此外,脚本的经编译的部分可被存储用于以后使用(如果脚本的这些部分随后被再次执行)。此外,脚本的启动部分可在简档信息中被确定和指示,使得启动部分可首先由运行时引擎处理,之后运行脚本。
在一示例方法实现中,接收到以动态语言编码的源代码以供执行。源代码被解析来生成经解析的源代码。经解析的源代码被转换成字节码。使用解释器来解释字节码。生成关于字节码的简档信息。存储简档信息。
此外,简档信息可被分析来确定与字节码接收到的部分相关联的情况。该字节码部分可被即时(JIT)编译成经编译的字节码部分,作为所确定的情况的结果。可存储经编译的字节码部分。
此外,该字节码部分可之后在解释器处在字节码中被再次接收。与所接收到的字节码部分相对应的经编译的字节码部分可被定位在存储中。可对位于存储中的经编译的字节码部分执行至少一个情况检查。如果至少一个情况检查通过,可执行经编译的字节码部分而非解释接收到的字节码部分。
在一示例系统实现中,提供运行时引擎。运行时引擎包括解析器、字节码生成器、执行控制器、解释器、JIT编译器以及简档生成器。解析器接收用动态语言编码的源代码并解析该源代码来生成经解析的源代码。字节码生成器将经解析的源代码转换成字节码。解释器被配置成当由执行控制器启用时,解释字节码。JIT编译器被配置成当由执行控制器启用时,编译字节码。简档生成器从字节码生成简档信息并存储简档信息。执行控制器启用解释器或JIT编译器来基于简档信息执行它们各自的功能。
在此也描述了用于从源代码生成简档信息,以及使得能够基于简档信息来高效地执行源代码,以及用于使得能够实现附加的实施例的计算机程序产品。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图简述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210330925.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:摆杆式张紧装置
- 下一篇:一种具有机械手辅助移动定位装置的塑料油箱加工系统





