即时编译论文_张云剑

导读:本文包含了即时编译论文开题报告文献综述、选题提纲参考文献及外文文献翻译,主要关键词:踪迹,字节,抽象,嵌入式系统,代码,寄存器,常量。

即时编译论文文献综述

张云剑[1](2017)在《即时编译中隐式常量的防御研究》一文中研究指出即时编译器将输入型程序,如JavaScript程序(简称js程序),编译为本地可执行代码,这为攻击者提供了便利。攻击者可利用js程序中受控制的常量构造攻击时所需的代码片段(称为gadget)来构建攻击代码。常数致盲等方法可使得js程序中的显式常量不再出现在代码缓存中,解决此类问题。近期有研究提出,攻击者通过隐式常量注入攻击所需代码片段,以实现攻击,使常数致盲等显式常量防御方法无效。为此,本文研究隐式常量的防御方法。通过分析此类攻击的原理及形成条件,采取变换代码缓存中隐式常量的方法,防御隐式常量的复用攻击。本文的主要研究工作如下:(1)分析了隐式常量攻击的原理及形成条件。动态生成代码的过程中,当一个语句块中的指令都生成后,隐式常数的值才能通过计算得到。因此在生成包含隐式常数的指令时,常数致盲的防御方案因无法得到隐式常数的值而不能对隐式常数进行保护。攻击者可利用这一缺陷,通过大量的测试、了解即时编译器的编译规律后,精心控制脚本代码中的语句块大小,使得脚本代码经过即时编译后能够得到编码了 gadget的隐式常数,然后进一步实施ROP攻击。(2)设计了一个基于寄存器随机化与代码改写相结合的防御方案,以消除本地代码中可被利用的隐式常量。寄存器随机化的目的在于将攻击者精心制造并注入的隐式常量进行随机地变换,使其发生改变,不易被攻击者控制、利用。在动态生成指令时,通过将扩展寄存器与其他通用寄存器随机置换,使得最终生成的指令大小发生改变,间接改变隐式常量。进而,在动态生成代码运行之前,对于还存在的可能被利用的隐式常量,采用二进制改写的方法将这些隐式常数隐藏到索引表中。寄存器随机化在不影响性能开销的基础上能够消除大部分有害的隐式常数,而代码改写能够有针对性地将可被利用的隐式常数隐藏、消去。(3)基于上述方案,在SpiderMonkey中实现了原型系统,并利用Firefox自带的测试文件集测试、验证了方案的可行性。以Octane、Sunspider等基准测试集,测试了原型系统的性能开销。实验结果表明,该方案可有效防御隐式常量攻击,其时空开销都较小。(本文来源于《南京大学》期刊2017-08-31)

陶胜召[2](2016)在《基于Trace的CMinus语言即时编译技术研究》一文中研究指出在网络环境下,一些网页脚本、分布式查询等可能动态生成查询请求或程序。这类查询或程序通常难以提前对其进行静态编译,如XQuery、JavaScript、Python、MATLAB等,它们一般是以解释执行方式运行。为了加快解释执行效率,可以通过即时编译技术,动态识别出程序中频繁执行的代码,对其进行编译处理后执行生成的目标代码,从而提高整个程序的执行效率。即时编译技术按照编译的应用对象不同可以分为两种:基于函数(Method)的即时编译技术和基于踪迹(Trace)的即时编译技术。基于函数的即时编译技术以函数为编译单元,编译粒度较粗。而基于Trace的即时编译技术按照控制流中频繁执行的路径作为即时编译的对象,能够完成更加细粒度的程序优化,并减少了对函数内非频繁代码进行编译的开销,在相当多的场景下能够更加有效的提高程序整体的执行效率。然而,基于Trace的即时编译系统涉及很多底层代码的优化,导致其开发难度较大。如果针对每一种程序设计语言都构造一个支持该优化技术的执行引擎,势必加大开发成本,导致该技术的应用范围受到一定限制。如果能够构造一个引入该技术的通用的执行引擎,便可快捷的将该技术扩展到其他语言的优化中。因此,为了扩展基于Trace的即时编译技术的应用范围,本文提出了一种针对CMinus语言程序的热踪编译技术。利用该热踪编译技术及其支撑工具,任何开发语言编写的程序只要能够翻译为CMinus程序都可以使用该技术提高其执行效率。本文的主要工作和贡献有:1)提出了针对CMinus语言程序的热点Trace探测技术:能够在运行时探测并识别CMinus程序代码中的热点Trace,并进行编译处理;2)设计了热点Trace的探测和动态合并方法:在运行时将对热点Trace进行探测并将出现重复节点的热点Trace进行动态合并,以降低运行时多个Trace间在重复节点处频繁地进行环境切换的开销;3)设计了不同运行时环境间的切换技术:能够保证程序运行过程中不同执行方式下运行时环境的一致性;4)设计并实现了一个基于Trace的CMinus语言通用即时编译系统,任何可以翻译为CMinus的语言都可以利用该技术提高执行效率,扩展了该技术的应用范围。实验结果表明这种即时编译技术能够显着地提高程序的执行效率,同时具有较好的可用性。(本文来源于《北京工业大学》期刊2016-06-01)

于成龙,廖湖声,武辰之,苏航[3](2015)在《针对SECD抽象机的基于踪迹的即时编译技术》一文中研究指出为提高程序的整体执行效率,提出一种基于踪迹(trace-based)的通用即时编译技术。在SECD抽象机指令序列的解释执行中,将执行频率高的程序片段识别为踪迹,并编译成Java字节码,由Java虚拟机执行。任何用SECD抽象机实现的编程语言都可以使用该技术来提高程序执行效率。介绍该技术的实现方法,包括解释执行环境和Java字节码程序执行环境的转换方法,实现采用该技术的执行引擎框架。实验结果表明,该技术可有效提高程序的执行效率。(本文来源于《计算机工程与设计》期刊2015年02期)

于成龙[4](2014)在《针对SECD抽象机的基于trace的即时编译技术》一文中研究指出高级程序设计语言的实现方式一般分为编译、解释、混合叁种。采用编译方式实现的高级语言在执行之前会使用编译器将程序编译为本地代码,运行效率较高;采用解释方式实现的高级语言不需要编译操作,在运行过程中由解释器负责执行程序,解释一条执行一条,执行效率较低;混合方式则将解释和编译结合起来,将源程序翻译为特定的中间代码,然后虚拟机负责执行中间代码。即时编译技术(just-in-time compilation)就是一种以混合方式实现高级语言的技术。应用该技术的执行引擎在解释执行一个程序的过程中,会在运行时将执行频率高的程序片段编译为目标代码,并编译执行。根据编译单位的不同,即时编译可以分为以方法(或是函数)为编译单位、以trace为编译单位这两类,前者每次都会将整个方法编译为目标代码,而后者每次只会编译被称作“trace”的代码片段。本文对基于trace的即时编译技术进行了研究,提出了一种通用的针对SECD抽象机的即时编译技术。采用该技术的执行引擎,将在SECD抽象机指令序列的解释执行中,以trace为单位进行热点探测,将执行频率高的trace视为热踪并将热踪提交给即时编译器。即时编译器将把热踪编译成Java字节码,由Java虚拟机负责执行这些字节码。任何能够用SECD抽象机实现的高级语言都可以采用该技术来提高程序执行效率。本文设计了一套SECD抽象机的指令集,实现了SECD抽象机,并给出了SECD指令序列到Java字节码的翻译算法。另一方面,SECD指令序列由SECD抽象机解释执行,而Java字节码则由Java虚拟机执行,不同执行方式的运行时环境并不相同。因此,本文还将讨论在不同情况下如何切换运行时环境,以保证在切换执行方式后程序能够正常运行。本文还提出了一种采用上述即时编译技术的通用执行引擎框架,并采用该框架实现了XQuery语言,实验表明采用上述即时编译技术可以有效提高程序的执行效率。(本文来源于《北京工业大学》期刊2014-06-01)

武辰之[5](2014)在《基于Trace的XQuery即时编译技术》一文中研究指出XML是W3C提出的一种半结构化的数据描述语言,因其具有的简单方便、跨平台、自描述性的特点,得到广泛的应用。为了规范和统一对XML数据的查询和处理,W3C制定XQuery语言作为查询XML的标准。XQuery是一种函数式语言,并有FLWOR表达式、用户自定义函数等可以描述复杂逻辑结构的语法结构,这使得与SQL这类传统的描述数据查询的语言不同,XQuery程序设计语言的特性使得其解释执行耗时较大,有必要引入编译技术降低解释开销。由于XQuery应用于网络环境下,其查询请求通常是动态产生的,并通过网络派发到各个节点,无法事先进行编译优化处理,只能使用即时编译技术,动态对从网络传来的查询请求进行编译处理,并在运行时执行编译后的目标代码以提高总体查询速度。XQuery查询一般较短小,查询耗时主要体现在主查询体而不是用户自定义函数上,传统的基于方法的即时编译不能适应这种场景,且编译的粒度越大,越容易抵消编译带来的效率提升。本文提出一种基于Trace的即时编译技术,在运行时对程序分支等片段进行热点探测和分析,将频繁执行的分支片段进行编译,发展了XQuery的编译实现技术。与基于方法的即时编译相比,Trace更加精细,可以有效降低不必要的编译损耗,而且可以对主查询内部片段进行编译,适合XQuery一般应用场景。本文亦对基于Trace的热点探测技术进行了发展,能够在运行过程中逐步合并相互关联的多个片段,动态扩展成一种树状的程序片段,有效降低了Trace间环境切换的开销。本文实现了基于Trace的XQuery即时编译系统,实验结果表明该系统功能完整,有较高可用性,而且在执行效率上相比解释执行和基于方法的即时编译有显着提高。(本文来源于《北京工业大学》期刊2014-06-01)

刘正[6](2014)在《工程机械嵌入式PLC即时编译系统的研究与实现》一文中研究指出编译系统是嵌入式PLC研发的关键核心环节,一个良好的编译系统的研发对整个嵌入式PLC运行性能起着决定性作用。目前市场大部分PLC编译系统都是封闭的且具有产权保护,价格昂贵。因此本文针对工程机械控制器产品研究PLC编译系统技术。本文分析传统PLC编译系统方法的优缺点,结合最近几年编译系统领域出现的编译新思想,提出采用编译与解释相结合的PLC即时编译方法,解决传统编译系统在上位机和下位机资源消耗和运行速度之间的矛盾,达到适合工控需求和软件研发的有效平衡。针对编译系统工作量繁多问题,采用解释后端的方式简化了系统的编译目标代码阶段,大幅降低了整个编译系统的开发工作量。针对PLC语法语义复杂等价变换问题,采用了中间语言的方式,能够表述PLC源语言所包含的任何语义。同时通过精简PLC源语言指令集,减轻了底层处理命令的压力,提高底层解释效率,便于移植、修改、优化。针对编译系统对准确性的苛刻要求,通过建立完善的出错处理机制,能够及时准确发现源程序错误,保证用户可以准确定位错误,方便修改。针对目标机体系结构的异构性,通过配置GCC后端,得到适合特定机型的系统解释后端。针对工程机械实际需求,建立维护可靠的符号表,满足工控机的端口以及其他特性要求。本文针对山河智能装备集团的工程机械控制器,基于上位机Windows系统和VS2005开发环境,采用C++开发语言,实现了编译系统的编译前端和上位机解释器。通过配置GCC后端,实现编译系统解释后端向PowerPC体系结构的目标机移植工作。最终实现一个嵌入式PLC最小编译系统,为上位机PLC集成开发平台提供编译环境。(本文来源于《中南大学》期刊2014-05-01)

刘丽,古幼鹏,唐德波[7](2012)在《对用户交互响应进行加速的即时编译技术》一文中研究指出对于影响用户交互响应速度的瓶颈代码段,现有即时编译器存在无法准确选取和在程序启动阶段没有可用的本地码进行加速的问题,这影响了即时编译技术在用户交互响应方面的加速效果。为此,对即时编译器原有的代码选择策略和编译模式进行了改进。在代码选择策略方面,应用程序可以根据实际运行情况主动选择要编译的代码段,保证所有影响用户交互响应速度的瓶颈代码段都能被选取并被加速;在编译模式方面,本次编译得到的本地码可以保存并供程序下次运行时使用,保证在程序启动阶段也有本地码可用来加速。应用程序启动速度的实验表明,改进的即时编译器能够提升1倍的用户响应速度。(本文来源于《计算机应用》期刊2012年03期)

张云[8](2006)在《一个为GBA设计的基于即时编译的动态二进制码转换器》一文中研究指出本文描述一个为GBA设计的基于即时编译的二进制码转换器(Binary Translator)。二进制码转换器是在把一种机器上运行的应用程序转换成在另一种机器上运行的应用程序的程序。本文描述了该转换器的构架及设计方案,同时也提出了一些优化手段。(本文来源于《福建电脑》期刊2006年09期)

杨航[9](2005)在《嵌入式Java虚拟机的即时编译优化技术》一文中研究指出J2ME(Java 2 Platform, Micro Edition)平台是Sun公司为目前正飞速发展的众多消费电子和嵌入式设备,如手机、个人数字助理终端、电视机顶盒以及车载通信系统等,所提供的Java应用平台解决方案。J2ME平台为数量众多的消费电子和嵌入式设备提供了一个统一的开发平台和运行平台,大大降低了软件厂商为软硬件环境差异较大的各类设备开发应用的周期,同时也使得最终用户能够以较低的价格体验到更多丰富多彩的应用。在当今的移动通信领域中,J2ME平台得到了全球各大运营商和设备厂商广泛支持和采用,并且已经被应用到了成千上万的移动通信设备上。随着3G技术的飞速发展,未来移动通信网络将能够提供高达2Mb/s的数据带宽,为J2ME应用进入更多全新的领域提供了可能,如在线游戏、多媒体应用、定位服务、信息查询以及移动银行等。丰富多彩的J2ME应用,功能也变得越来越复杂,这就对大多以解释器为执行核心的嵌入式Java虚拟机提出了更高的性能需求。由于解释执行自身的性能瓶颈,基于解释执行的优化技术已经很难再进一步提高虚拟机的性能,这必将阻碍J2ME平台在移动通信领域的发展。虽然即时编译技术帮助Java在桌面机和服务器平台上取得了巨大的成功,但是由于移动通信设备自身计算能力相对较弱、存储容量和电力供应十分有限,使得即时编译技术无法直接应用到嵌入式Java虚拟机中。因此,针对移动通信设备的特点,研究适合于嵌入式Java虚拟机的即时编译优化技术,从而为各种J2ME应用提供一个高性能的Java运行平台,不仅具有重要的现实意义,而且有着良好的应用前景。本文针对移动通信设备的特点,分析了即时编译优化技术应用于嵌入式Java虚拟机所面临的种种问题,设计并实现了一套适合于移动通信设备的嵌入式Java虚拟机即时编译优化方案。该优化方案不仅大幅度地提高了嵌入式Java虚拟机的性能,而且其实现的自适应即时编译器具有代码生成较快、内存开销较低和代码规模较小的特点。(本文来源于《电子科技大学》期刊2005-12-01)

CSDN[10](2002)在《微软中间语言和即时编译》一文中研究指出微软中间语言(MSIL) MSIL是一种CPU无关的中间语言,它是由微软公司在请教了公司以外的几位商业派和学院派语言/编译器编写者之后创造出来的。MSIL比绝大多数CPU机器语言都高级得多,它知道对象类型,并且有创建、初始化对象、调用对象虚拟方法和直接处理数组元素的指令。它甚至还有用于错误处理的释放、捕捉异常的指令。(本文来源于《程序员》期刊2002年04期)

即时编译论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

在网络环境下,一些网页脚本、分布式查询等可能动态生成查询请求或程序。这类查询或程序通常难以提前对其进行静态编译,如XQuery、JavaScript、Python、MATLAB等,它们一般是以解释执行方式运行。为了加快解释执行效率,可以通过即时编译技术,动态识别出程序中频繁执行的代码,对其进行编译处理后执行生成的目标代码,从而提高整个程序的执行效率。即时编译技术按照编译的应用对象不同可以分为两种:基于函数(Method)的即时编译技术和基于踪迹(Trace)的即时编译技术。基于函数的即时编译技术以函数为编译单元,编译粒度较粗。而基于Trace的即时编译技术按照控制流中频繁执行的路径作为即时编译的对象,能够完成更加细粒度的程序优化,并减少了对函数内非频繁代码进行编译的开销,在相当多的场景下能够更加有效的提高程序整体的执行效率。然而,基于Trace的即时编译系统涉及很多底层代码的优化,导致其开发难度较大。如果针对每一种程序设计语言都构造一个支持该优化技术的执行引擎,势必加大开发成本,导致该技术的应用范围受到一定限制。如果能够构造一个引入该技术的通用的执行引擎,便可快捷的将该技术扩展到其他语言的优化中。因此,为了扩展基于Trace的即时编译技术的应用范围,本文提出了一种针对CMinus语言程序的热踪编译技术。利用该热踪编译技术及其支撑工具,任何开发语言编写的程序只要能够翻译为CMinus程序都可以使用该技术提高其执行效率。本文的主要工作和贡献有:1)提出了针对CMinus语言程序的热点Trace探测技术:能够在运行时探测并识别CMinus程序代码中的热点Trace,并进行编译处理;2)设计了热点Trace的探测和动态合并方法:在运行时将对热点Trace进行探测并将出现重复节点的热点Trace进行动态合并,以降低运行时多个Trace间在重复节点处频繁地进行环境切换的开销;3)设计了不同运行时环境间的切换技术:能够保证程序运行过程中不同执行方式下运行时环境的一致性;4)设计并实现了一个基于Trace的CMinus语言通用即时编译系统,任何可以翻译为CMinus的语言都可以利用该技术提高执行效率,扩展了该技术的应用范围。实验结果表明这种即时编译技术能够显着地提高程序的执行效率,同时具有较好的可用性。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

即时编译论文参考文献

[1].张云剑.即时编译中隐式常量的防御研究[D].南京大学.2017

[2].陶胜召.基于Trace的CMinus语言即时编译技术研究[D].北京工业大学.2016

[3].于成龙,廖湖声,武辰之,苏航.针对SECD抽象机的基于踪迹的即时编译技术[J].计算机工程与设计.2015

[4].于成龙.针对SECD抽象机的基于trace的即时编译技术[D].北京工业大学.2014

[5].武辰之.基于Trace的XQuery即时编译技术[D].北京工业大学.2014

[6].刘正.工程机械嵌入式PLC即时编译系统的研究与实现[D].中南大学.2014

[7].刘丽,古幼鹏,唐德波.对用户交互响应进行加速的即时编译技术[J].计算机应用.2012

[8].张云.一个为GBA设计的基于即时编译的动态二进制码转换器[J].福建电脑.2006

[9].杨航.嵌入式Java虚拟机的即时编译优化技术[D].电子科技大学.2005

[10].CSDN.微软中间语言和即时编译[J].程序员.2002

论文知识图

即时编译执行测试2结果即时编译执行测试1结果即时编译执行程序2-1即时编译图示tecoe...编译运行效果图数据库表结构

标签:;  ;  ;  ;  ;  ;  ;  

即时编译论文_张云剑
下载Doc文档

猜你喜欢