导读:本文包含了中间代码论文开题报告文献综述、选题提纲参考文献及外文文献翻译,主要关键词:代码,粒子,检错,中间层,数据流,语义,冗余。
中间代码论文文献综述
黄海汇,陈雨亭[1](2016)在《基于源码变更分析的程序中间代码生成技术》一文中研究指出当前存在很多针对程序中间代码变更进行的程序增量分析、验证技术。为更有效地在实际中应用这些技术,如何获取程序中间代码的变更信息成为一个关键研究问题。本文主要研究通过提取源码的变更,将源码变更映射至中间代码变更的新的程序中间代码生成技术IRChange。IRChange基于Clang和LLVM中间代码,在源码中添加标记,在程序编译过程中传递变更标记;进一步地,将变更前中间代码与变更标记进行合成,以生成新的中间代码。实验结果表明,本文所获取的带增量信息的中间代码不仅具有较高正确性,且可以用于中间代码的差异分析,为增量程序分析、验证提供便利。(本文来源于《计算机与现代化》期刊2016年06期)
李磊[2](2016)在《C编译器中间代码生成及其后端的设计与实现》一文中研究指出本文主要研究C编译器的实现技术。虽然当前已有了各种成熟版本的编译器供人们使用,但是局限于编译技术涉及太多计算机底层细节、研究门槛过高的特点,绝大多数科研人员对编译器内部的实现机制仍然不甚明了。深入研究编译器相关技术,不仅能促使科研人员更好的设计软件,甚至对于推动计算机科学的发展都有着重要影响。因此,通过设计并实现一个架构清晰、功能完善的编译器来揭示编译技术的实现原理,帮助科研人员更好的理解程序运行的本质,具有重大的意义。本文分析了编译器各模块的功能及其实现中存在的一些待解决的问题。针对编译过程中不同的处理模块,通过设计相应的数据结构和算法框架阐述了基本的编译器实现技术。为了能够更清晰、明确的揭示编译器的工作原理,本文在数据结构设计和算法实现上都具有了多方面的特色:1.LR语法分析技术的实现。不同于现有的编译原理书籍中介绍的计算项集来选择产生式的方式,实现了基于表驱动框架的语法分析器,简化了LR语法分析的实现方式。2.中间代码生成器的设计与实现。设计了描述中间代码生成器功能的数据结构,设计并实现了进行中间代码输出的主算法框架,实现了将源程序中的表达式和语句翻译为合适的中间代码表示。3.汇编代码生成器的设计与实现。设计了描述汇编代码生成器功能的数据结构,设计并实现了进行汇编代码输出的主算法框架,实现了将源程序翻译为汇编代码表示。4.目标代码优化的实现。设计了等价类表来实现对生成的汇编目标代码的优化,消除了冗余的指令计算。最后的测试结果表明,本文实现的C编译器可以将源程序翻译为汇编目标代码,并且能够成功执行得到正确的结果。本文设计的C编译器数据结构和算法架构清晰,不仅易于理解编译技术的基本原理而且方便实现,在此基础上还可以进行更进一步的优化工作。(本文来源于《电子科技大学》期刊2016-03-29)
杨洪深,赵宗渠,王俊峰[3](2013)在《基于中间代码的恶意软件检测技术研究》一文中研究指出软件的中间代码是位于机器语言和高级程序语言之间程序语言,具有容易理解的语义信息和控制结构信息,能真实地反映软件在执行过程中的实际情况.利用中间代码的语义信息来研究恶意软件,可以发现恶意软件的具体行为信息或特点;通过多种方式对比中间代码形成的控制流图整体或局部信息,实现恶意软件的检测.机器学习为软件安全性信息或规则挖掘提供便利,成为一种先进的恶意软件检测方法.本文从中间代码的语义信息和控制结构两方面对多种恶意软件检测技术进行归类与比较,同时对基于机器学习的中间代码处理与应用方法进行了深入分析和探讨.(本文来源于《四川大学学报(自然科学版)》期刊2013年06期)
司斯[4](2013)在《基于微软COFF平台的中间代码混淆技术研究》一文中研究指出反汇编和反编译等逆向技术的不断发展,对二进制程序代码的分析和理解产生了重大影响,在一定程度上解决了系统漏洞查找、程序代码优化等诸多难题。但是逆向技术的快速发展同时也带来了消极的一面,即全球软件盗版率逐年上升。作为最直接,也是最有效的对抗软件盗版的措施——软件保护技术也得到了长足的发展。在软件保护的研究领域当中,代码混淆技术能够在不改变被保护程序运行行为的前提下,能够有效的提高逆向分析的难度,因而该技术在近年的研究当中受到诸多关注。本文以目前研究最为广泛的基于源代码以及目标代码的代码混淆技术作为研究基础,从这两种代码混淆技术的不足出发,提出了一种新型的,基于微软COFF(Common Object File Format)平台的中间代码混淆技术。主要研究工作如下:首先,将中间代码混淆技术主要分为反汇编,混淆,代码生成叁个阶段。针对反汇编阶段,本文提出了针对obj文件(微软平台下的中间代码文件)的反汇编算法。该算法能够在最大程度上提取出obj文件中的代码和数据,同时对符号表中符号进行重定位地址回填,最终反汇编生成语法格式正确的,且能够被正确编译的汇编源文件。其次,对于中间代码混淆的第二个阶段,即代码混淆阶段,本文提出了叁种专门针对中间代码的混淆算法,包括敏感指令隐藏算法、等效花指令序列生成算法、指令控制流乱序算法。这叁种算法分别从隐藏敏感指令、稀释核心代码、打乱程序控制流程叁个不同方面来提供保护。同时叁者间能够相互任意组合,并且可通过指定迭代次数来自由控制混淆强度。再次,在上述研究工作的基础上,本文实现了基于微软COFF平台的中间代码混淆系统。该系统集成了obj反汇编模块、中间代码混淆模块、编译链接模块,能够对单个或多个obj文件进行反汇编、混淆,并最终生成能够抵抗逆向分析的可执行程序。随后,针对中间代码混淆系统的功能和性能两方面进行了测试和分析。测试主要分为两部分,第一部分对obj反汇编器进行测试,第二部分中间代码混淆算法进行测试。最后,对现阶段研究工作进行了总结,并针对当前研究成果的种种不足,给出了进一步的改进方法和新的研究目标。(本文来源于《广东工业大学》期刊2013-05-01)
何涛,周会平,贾丽丽,王发鸿[5](2012)在《GCC编译器中间代码层控制流扩充研究》一文中研究指出本文首先对CFCSS(控制流检错算法)进行了介绍,对GCC编译器的运行流程进行了简要分析,再次给出了在GCC编译器中扩充CFCSS算法的具体方法,最后通过故障注入实验对扩充后的GCC进行了有效性验证。实验表明,扩充了CFCSS算法的GCC编译器所编译的程序在运行过程中具有控制流检错能力。这为我们下一步的故障定位和故障恢复提供了有力的支持,为解决星载计算机的运行故障奠定了基础。(本文来源于《计算机工程与科学》期刊2012年02期)
李林虎[6](2010)在《基于编译中间代码的关键变量容错技术》一文中研究指出随着世界范围内兴起空间探测的热潮,空间环境中的计算机的可靠性问题越来越重要。在空间环境中,硬件瞬时故障给星载计算机带来的可靠性问题非常突出,尤其是单粒子翻转故障构成了对星载计算机安全的主要威胁。传统上一般采用专用的抗辐照器件来建造空间星载计算机。但是,抗辐照器件价格昂贵,且计算性能不高,而COTS器件计算性能很高,价格和功耗都很低。通过在COTS器件上使用面向硬件的软件容错技术可以提供高可靠、高性能、低成本和低功耗的空间计算机的解决方案。面向硬件瞬时故障的软件容错技术一般是通过复制指令并比较结果的方法来检测发生在硬件中的瞬时故障,在编译的时候插入冗余计算的指令,可以简单高效的实现容错,所以容错编译成为面向硬件瞬时故障的软件容错中比较流行的一种实现方法。本文首先深入分析了当前编译容错的技术原理及其优缺点。提出了变量脆弱因子的概念以及一种静态分析的关键变量选取技术,分析了变量脆弱因子的大小对系统可靠性影响的高低。给出了固有脆弱因子和依赖脆弱因子的概念以及计算模型。并对计算模型分析,用实例检验了计算模型的正确性。的关键变量容错算法在编译中间代码实现的原理深入的分析,得出在中间代码的关键变量复算是有效的。提出了两种不同的数据流检错复算策略,一种具有错误恢复能力的复算策略。并比较了这几种变量复算策略的优缺点。基于编译中间代码的关键变量容错技术结合了源到源变量容错技术以及汇编代码级别变量容错技术的优点。它能够适用于多种高级语言以及硬件平台。最后,通过故障注入实验的方法对基于编译中间代码关键变量的容错技术进行了验证,实验结果表明:1)基于静态分析的关键变量选取技术能够有效地计算分析变量对系统可靠性能的影响。变量脆弱因子的计算灵活性强、可配置,能够有效利用编译器对程序分析的信息。2)基于编译中间代码关键变量容错技术达到了预期的目的,并且在性能开销和容错能力上有较好的表现。证明了在编译器中间代码上插入容错指令方法的正确性和有效性。(本文来源于《国防科学技术大学》期刊2010-11-01)
何涛[7](2010)在《GCC编译器中间代码层控制流检测扩充研究》一文中研究指出太空运行的计算机受到来自宇宙射线的辐射,对计算机运行的稳定性和正确性带来了很大影响。空间辐射环境对电子器件的影响可分为单粒子效应和总剂量效应两类,其中单粒子效应尤其是单粒子翻转故障构成了对星载计算机安全的主要威胁[1]。相关研究结果表明[2],相对于使用抗辐照器件的硬件容错技术,采用软件容错技术,即在商用器件(COTS,Commercial Off The Shelf) [3]上采用软件的方法容忍硬件故障,可以在保证系统可靠性的前提下,获得更高的系统性能[4]。软件容错技术同时也具有低成本、低功耗、可灵活配置等优点。本文的研究内容控制流检测是软件容错技术的重要组成部分。首先,本文分析了控制流检测的基本原理和分类,并且比较了两种不同的控制流检测方法的优缺点,接下来介绍了叁种纯软件的控制流检测算法RSCFC、ECCFS和CFCSS(Control-Flow Checking by Software Signatures),并提出在GCC编译器的中间代码层扩充CFCSS和ECCFS检测算法。其次,对GCC编译器的运行过程、优化框架和GCC中所用到的几种中间语言进行了分析和介绍,并对容错代码的插入点如何选择进行了分析。文章第四章提出了在GCC编译器中间代码层扩充CFCSS和ECCFS算法的具体方法,并对CFCSS和ECCFS算法自身的优缺点进行了剖析。最后分别将扩充了CFCSS和ECCFS算法的GCC编译器编译出来的汇编代码进行了测试,测试结果显示CFCSS和ECCFS算法已经正确的扩充到了GCC编译器中,扩充后的GCC编译器具有控制流检测能力。(本文来源于《国防科学技术大学》期刊2010-04-01)
姜玲燕[8](2008)在《动态二进制翻译中基于中间代码的优化研究》一文中研究指出如何提高动态二进制翻译系统的性能,是每个动态二进制翻译系统亟需解决的问题之一。基于中间代码层实现多源多目标的动态二进制翻译器,其中间代码层的性能至关重要。一是中间代码自身的效率。中间代码作为动态二进制翻译器中一层,一般以简单为设计的首要原则,每条指令只实现单一功能,导致中间代码膨胀严重,且带来一定程度的冗余信息。二是中间代码的优化机会。由于中间语言的平台无关性,对它进行的优化方法也是独立于平台的,所以可以构筑平台无关的、可重用的优化框架。为了改进中间代码的质量,提高二进制翻译器的性能,本文对二进制翻译中和中间语言相关的优化技术进行了研究。论文的主要工作包括:一、对基本块内的常用优化策略进行研究,针对CrossBit中间语言的组成和特性,提出了适合CrossBit中间语言的SSA形式化算法和冗余指令删除算法,大大减少了代码的膨胀率,使CrossBit系统的性能提升约10%~30%。二、借鉴现有链接技术,在CrossBit上实现了路径线性化算法,减少了系统的上下文切换,使CrossBit系统的性能提升约10%~30%。叁、对动态优化技术进行研究,运用Profile实现热块的识别,并结合运用二级TCache以及VCache,为进一步进行动态优化奠定了基础。四、通过对后端寄存器分配算法的研究和比较,如全局寄存器分配、特殊寄存器分配、图染色法等,提出了适合CrossBit X86后端的基于next-use信息的寄存器分配策略。(本文来源于《上海交通大学》期刊2008-12-01)
袁彩虹,薛光,张连堂[9](2008)在《语义分析和中间代码产生教学过程研究》一文中研究指出本文针对"编译原理"中语义分析和中间代码产生部分的理论教学,从教学手段、教学方法和教学过程等方面进行了有益的探讨和研究。(本文来源于《计算机教育》期刊2008年09期)
张滇[10](2008)在《基于GCC的中间代码优化技术研究》一文中研究指出目前程序语言层出不穷,计算机日新月异,导致了程序语言与计算机的多样性,这就给编译器的构造带来了沉重的负担。中间代码的出现,将优化尽量施加到中间语言上,而不是施加到高级语言或低级语言上。中间代码优化过程包含非循环优化和循环优化两个部分。数据流分析是非循环优化技术必要的模型,然而目前的数据流分析模型不能增量式地修改数据流信息,因此构建可增量式的数据流分析模型就成为了非循环优化技术的研究重点;另一方面,循环优化可提高程序的局部性,然而对多个数组访问要分别确定获得理想步长向量对应的变换矩阵,如果这些变换矩阵不相同,解决冲突措施的计算复杂度非常高。本文通过对数据流分析技术的深入研究,引入控制块分解流图来构建控制流树,确定了流图中的回边及循环路径中所包含的节点,通过将这些回边从原流图中消去可构建无环流图,从而简化流图的数据流分析。控制块将流图的控制关系转移到新构建的控制流树的内部控制节点上。使用控制块分解算法将流图转换到控制流树过程中,所创建节点数目不超过n,使用控制流树求解路径表达式和确定回边的时间复杂度不超过O(nlogn)。另外,本文采用将加权系统矩阵每一列的元素相加得到一个新的向量,确定嵌套循环中的大多数数组访问的顺序与存储顺序相一致,在一个较粗粒度上提高嵌套循环的局部性,并大大地降低了计算复杂度。本文还对GCC高级循环变换实现机制进行了深入的研究,确定了影响GCC高级循环变换的主要因素是GCC计算矩阵变换机制不足,通过使用整个嵌套循环统一分析框架,确定理想的循环层次结构,解决了GCC计算矩阵变换机制不足的缺点。最后,使用性能评测数据程序,以GCC编译器为基础平台,对改进前后的GCC编译器进行测试,测试结果表明:改进后的GCC编译器循环变换能力有了较好的提高。(本文来源于《哈尔滨理工大学》期刊2008-03-01)
中间代码论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要研究C编译器的实现技术。虽然当前已有了各种成熟版本的编译器供人们使用,但是局限于编译技术涉及太多计算机底层细节、研究门槛过高的特点,绝大多数科研人员对编译器内部的实现机制仍然不甚明了。深入研究编译器相关技术,不仅能促使科研人员更好的设计软件,甚至对于推动计算机科学的发展都有着重要影响。因此,通过设计并实现一个架构清晰、功能完善的编译器来揭示编译技术的实现原理,帮助科研人员更好的理解程序运行的本质,具有重大的意义。本文分析了编译器各模块的功能及其实现中存在的一些待解决的问题。针对编译过程中不同的处理模块,通过设计相应的数据结构和算法框架阐述了基本的编译器实现技术。为了能够更清晰、明确的揭示编译器的工作原理,本文在数据结构设计和算法实现上都具有了多方面的特色:1.LR语法分析技术的实现。不同于现有的编译原理书籍中介绍的计算项集来选择产生式的方式,实现了基于表驱动框架的语法分析器,简化了LR语法分析的实现方式。2.中间代码生成器的设计与实现。设计了描述中间代码生成器功能的数据结构,设计并实现了进行中间代码输出的主算法框架,实现了将源程序中的表达式和语句翻译为合适的中间代码表示。3.汇编代码生成器的设计与实现。设计了描述汇编代码生成器功能的数据结构,设计并实现了进行汇编代码输出的主算法框架,实现了将源程序翻译为汇编代码表示。4.目标代码优化的实现。设计了等价类表来实现对生成的汇编目标代码的优化,消除了冗余的指令计算。最后的测试结果表明,本文实现的C编译器可以将源程序翻译为汇编目标代码,并且能够成功执行得到正确的结果。本文设计的C编译器数据结构和算法架构清晰,不仅易于理解编译技术的基本原理而且方便实现,在此基础上还可以进行更进一步的优化工作。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
中间代码论文参考文献
[1].黄海汇,陈雨亭.基于源码变更分析的程序中间代码生成技术[J].计算机与现代化.2016
[2].李磊.C编译器中间代码生成及其后端的设计与实现[D].电子科技大学.2016
[3].杨洪深,赵宗渠,王俊峰.基于中间代码的恶意软件检测技术研究[J].四川大学学报(自然科学版).2013
[4].司斯.基于微软COFF平台的中间代码混淆技术研究[D].广东工业大学.2013
[5].何涛,周会平,贾丽丽,王发鸿.GCC编译器中间代码层控制流扩充研究[J].计算机工程与科学.2012
[6].李林虎.基于编译中间代码的关键变量容错技术[D].国防科学技术大学.2010
[7].何涛.GCC编译器中间代码层控制流检测扩充研究[D].国防科学技术大学.2010
[8].姜玲燕.动态二进制翻译中基于中间代码的优化研究[D].上海交通大学.2008
[9].袁彩虹,薛光,张连堂.语义分析和中间代码产生教学过程研究[J].计算机教育.2008
[10].张滇.基于GCC的中间代码优化技术研究[D].哈尔滨理工大学.2008