首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 78 毫秒
1.
陆卫东  金成植 《软件学报》1996,7(10):634-640
本文提出了一种新的基于CLOSURE分析的高阶函数式语言的部分求值方法,对表达式中的高阶值采取了有效的抽象分析手段,从而提高了剩余程序的质量。文中给出了CLOSURE分析,抽象分析,标记和例化较完整的形式描述。  相似文献   

2.
LISP语言的增量式部分求值器   总被引:2,自引:0,他引:2  
李航  宋立彤  金成植 《软件学报》1996,7(8):492-498
部分求值在软件优化中有着重要的作用,而增量式计算是避免重复计算的一种技术.本文基于部分求值和增量式计算的技术,实现了一个LISP语言的增量武部分求值器,使得函数例化尽量在前次已经产生的剩余程序的基础上进行,从而很好地提高了效率.  相似文献   

3.
函数式语言的部分求值技术   总被引:2,自引:1,他引:2       下载免费PDF全文
宋立彤  金成植 《软件学报》1996,7(5):306-313
本文基于抽象解释技术设计并实现了一函数式语言部分求值器FMIX.FMIX在设计方法和实现策略上具有一定独到之处,系统运行效率较高.  相似文献   

4.
任杰  阳昕  石磊  陈渝  杨维康 《计算机工程》2008,34(9):93-94,9
对面向对象的C编译器(OCC)的整体设计进行介绍。OCC以抽象语法树为中间表达形式。语法树节点分为8大类86种,降低了在采用visitor设计模式进行语意分析时节点功能的耦合度。OCC用简易的垃圾回收器解决了语法树节点动态分配和销毁时的内存泄漏问题。OCC的类型分析模块针对类型声明中9个不同组成部分采用7种处理方式,降低了属性文法脚本的维护难度。  相似文献   

5.
本文描述了流图语言的自应用型静态部分求值器,它由活跃变量分析、抽象分析、标记和例化4部分组成.在活跃变量分析基础上再作抽象分析,比以往的抽象分析获得的抽象解释更精确,也更利于产生较高质量的剩余程序.转移压缩在例化中直接进行.  相似文献   

6.
过程式语言部分求值循环展开的有效处理方法   总被引:3,自引:0,他引:3  
文中基于数据流分析技术,通过引进循环中变量之间的相互依赖关系,提出一种过程式语言部分求值的处理方法。利用该方法能有效地解决过程式语言部分求值中循环展开这一难题。  相似文献   

7.
利用UNIX的词法、语法分析器的自动生成工具lex、yace,方便地构造了编译器的前端,同时提供了修改前端的便利。并还定义了面向测试图形的描述性中间语言,以此作为移植的基础上。  相似文献   

8.
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足、生成效率低的问题,提出一种基于前馈神经网络的编译器模糊测试用例生成方法,并设计实现了原型工具FAIR.与现有的基于token序列学习的方法不同,FAIR从抽象语法树中提取代码片段,利用基于自注意力的前馈神经网络捕获代码片段之间的语法关联,通过学习程序设计语言的生成式模型,自动生成多样化的测试用例.实验结果表明,FAIR生成测试用例的解析通过率以及生成效率均优于同类型先进方法.该方法显著提升了检测编译器软件缺陷的能力,已成功检测出GCC和LLVM的20处软件缺陷.此外,该方法具有良好的可移植性,简单移植后的FAIR-JS已在JavaScript引擎中检测到两处软件缺陷.  相似文献   

9.
提出了一种面向对象程序设计语言的部分求值动作分析方法,利用带有绑定时间标注的源程序生成部分求值动作原语序列,作为各种部分求值实现策略的基础。这种方法使部分求值算法独立于具体的实现方法,从而降低了部分求值系统的实现难度。  相似文献   

10.
文章研究部分求值技术中的约束时间分析(简称BTA),介绍了一种高阶的函数式语言FSL语言的部分求值器的BTA。该部分求值器的BTA由两个部分来实现:BTA1和BTA2,其目的是减少重复计算,提高部分求值的执行效率  相似文献   

11.
以在嵌入式系统中建立C编译器的技术特点为主要内容,用设计实例论述了C编译器实现中前端、后端的主要工作内容。说明了在前、后端之间起桥梁作用的中间描述语言有向无环图(DAG)的设计原理及形成方法,同时还就如何将DAG与目标机系统之间形成映射关系进行描述,提出了在映射中规约规则制定的方法和原则,给出了一些有指导意义的经验性结论。  相似文献   

12.
同步语言Lustre所描述的反应系统通常应用在航空航天、国防建设等领域,对系统的正确性和安全性都要求很高。如果系统在运行时出现了正确性问题,很可能会导致系统崩溃,产生非常严重的后果。系统中的任何一个词法错误或者语法错误都应该受到重视,而且应该被及时纠正。因此,对Lustre语言进行正确的编译是十分重要的。传统的Lustre语言的编译器都采用OCaml语言描述,无法保证所有人员都能够很容易地理解和使用,而且,需要耗费开发人员大量的时间和精力。基于上述问题,提出了一种新型的Lustre语言编译器。新型的Lustre语言编译器前端主要采用C++语言进行描述,并对生成的抽象语法树的结构进行重新定义,简化了编译的过程。该编译前端会对一个经典的Lustre语言模型进行检测,通过对检测的结果进行分析,验证了该编译前端的可行性。  相似文献   

13.
近年来,以数据依赖分析为基础的高级编译优化成为现代编译器的重要研发内容.针对这类编译优化的测试问题提出了一种测试程序自动生成方法,能够根据指定的数据依赖特征生成测试程序.首先设计了LoSpec语言用以描述测试程序,然后采用一种便于表示数据依赖关系的模型——过程图作为中间表示模型实现了测试程序的自动生成,并开发了自动测试工具LoTester.与已有方法相比,该方法对高级优化更具针对性,自动化程度较高. LoTester目前在一款面向多媒体应用的优化编译器EECC的开发中得到应用并获得了良好效果.  相似文献   

14.
15.
Most areas of research or work use their own set of words and phrases and gives specific technical meaning to terms that in everyday speech may mean something less specific or something else entirely. The area of partial evaluation and program transformation is no different, which may make it hard for the uninitiated to grasp some parts of technical papers or discussions. This list of words and terms is intended as a help to people new in the subject area, but may also be of help to experienced researchers, as different research groups tend to develop different terminology.  相似文献   

16.
一种新型编译器开发工具的原理及快捷使用   总被引:1,自引:1,他引:0  
由美国Archelon公司开发的可重定位编译器开发工具———RetargetableCompilerDevelopmentTools是一种新型的集成化编译器开发工具,它可以为有特殊硬件结构和指令的目标机器开发高级语言编译器。应用该工具,不需要编写传统的词法分析、语法分析等各阶段程序,只需在熟悉目标机器的指令结构、硬件机制的基础上编写编译信息文件和机器定义文件。这里将分析该工具的工作原理,并提出使用该工具的快捷方法。  相似文献   

17.
针对SQL查询程序实现多样性的问题,提出一种用于精确评估SQL程序的评分模型.首先基于通用标准的SQL语法规范标识符和命令子句,基于同义词链和抽象语法树规范表达式,将SQL程序转换成统一的中间形式,充分消除SQL程序句法和语义表达多样性带来的差异;然后,模拟人工评分思想,对标准化后的程序按评分点组成评估单元序列,采用改进的最长公共子序列算法评估代码相似度,按评分点权重计算成绩,并给出错误定位;最后,通过样例测试和分析说明了评分模型的有效性.  相似文献   

18.
携带证明代码允许代码消费方通过检查代码生产方提供的证明,来判断代码是否满足相应的安全规范.本文实现了一个类C语言的出具证明编译器原型,它在将带有规范标注的源代码编译成汇编代码的同时,还能产生汇编代码满足相应规范的Coq可检查证明,从而保证汇编代码的安全性.本文设计了一种Hoare风格的汇编级验证框架,并在此框架下提出并实现一种新的自动生成汇编级断言和证明的方法.  相似文献   

19.
依针对MC/DC最4,N试用例集生成效率的问题,依据MC/DC准则,以条件判定组合的复杂逻辑关系为研究对象,采用将原始布尔表达式转化为语法树,再将语法树转化为图,分析图中节点对判定结果的影响的方法,研究了基于图快速生成最小测试用例集的算法.最后结合实倒对该算法进行了验证,并与其他算法进行了比较,结果表明该算法在手动和自动生成最小测试用例集时具有实用性和优越性.  相似文献   

20.
克隆代码又被称为重复代码,是一种代码坏味,针对传统的保持语法结构不变的过程提取方法提取克隆代码时存在的对某些克隆代码无法直接提取的问题,提出一种新的语义保持的克隆代码无定型过程提取方法,该方法结合程序依赖图和抽象语法树对程序进行语义分析,取消了传统的保持语法结构不变的过程提取算法对语句结构一致性的约束,保留了语义一致性约束,从而解决了传统方法不易处理的连续但不能直接提取的克隆代码提取问题,降低了对未标记语句提升的需求,并且不需要对跳转语句进行特殊处理.实验结果表明该方法可以提取传统的保持语法结构不变的过程提取方法不能提取的克隆代码,提高了克隆代码过程提取的准确性和适用性.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号