首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 156 毫秒
1.
面向对象程序设计语言的绑定时间分析技术   总被引:5,自引:0,他引:5       下载免费PDF全文
廖湖声  童兆丰  王众 《软件学报》2003,14(3):415-421
为了实现面向对象语言的部分求值,提出了一种绑定时间分析技术.该技术通过针对引用类型变量和指针变量的上下文敏感分析,能够比较精确地分析面向对象语言中诸如对象元素、数组元素等复杂数据结构元素的绑定时间,进而扩大了部分求值的作用范围.这种方法采用两层BTA环境来保存静态变量和局部变量的BTA状态,设置一种专用句柄来表示不同程序点创建的对象,进而采用这种句柄的集合表示引用类型变量的BTA状态.在为面向对象语言程序标注绑定时间信息的过程中,采用一个正向分析和一个反向分析过程,借助于BTA环境来跟踪和设定各种变量、对象和引用变量的绑定时间.该技术已经用于实现Java程序的绑定时间分析,能够有效地分析大多数单线程的Java程序,为实现高性能Java程序部分求值提供了必要的手段.  相似文献   

2.
陈林  徐宝文  钱巨  周天琳  周毓明 《软件学报》2009,20(10):2617-2627
重构泛型实例有利于提高软件的复用性和类型安全,但现有重构方法的时间复杂度较高,不适用于即时持续的重构.分析了变量类型传播分析方法在重构中的不足,提出了一种改进的泛型变量类型传播分析方法.该方法通过引入一种可以描述复杂参数化类型关系的泛型类型传播图,以复制节点的方式实现泛型变量属性敏感的类型分析,并通过解决别名问题来提高分析的精度.实例研究表明,可以在与程序规模呈近似线性增长的时间复杂度内实施重构,取得了较满意的效果.  相似文献   

3.
锁别名分析能够得到锁指针变量的指向信息,有效的锁别名分析可以更好地辅助数据竞争分析和死锁分析.现有锁别名分析往往采用保守的方式处理,进而影响分析结果的准确性.针对这一问题,提出了一种锁别名分析方法,该方法首先使用GCC插件获取SSA形式的中间代码,然后对中间代码进行预处理以获得与锁、函数指针操作相关的语句,最后对预处理后的程序使用本文提出的FP_LOCK算法进行准确的流敏感、上下文敏感分析.实验结果表明该方法能精确地确定锁别名,并且经过预处理后的FP_LOCK算法对分析大程序平均有9.95倍的加速比.  相似文献   

4.
激进域敏感基于合并的指针分析   总被引:5,自引:1,他引:4  
指针分析是静态程序分析的基础,指针分析的精度直接影响后续的程序分析和优化.域敏感性用来描述指针分析是否需要区分结构体对象的不同域成员.文中提出一种激进的基于合并的域敏感指针分析方法,利用目标机器模型中的数据布局信息进行高层分析,使用基地址和偏移的组合来激进地表示一个结构体域成员以能更精确地区分结构体的不同域成员.文中还对原有类型推导规则做了重要改进,尽量避免在合并类型变量时造成的精度损失.为了保证新类型推导规则的正确性,方法将所有的结构体赋值操作转换成对每个结构体成员的赋值操作.大量实验数据表明,该方法分析精度显著高于以往方法而运行开销几乎相当.该方法还将域成员的激进表示集成至编译器的中间表示中以获得可移植性.  相似文献   

5.
指针分析是编译优化、程序静态分析中的基础,很多应用都需要基于指针分析,低精度的指针分析会给这些应用带来高误报率和漏报率,通过添加上下文敏感信息是提高指针分析的精度的一个重要手段.自从面向对象的概念被提出来之后,该概念得到了广泛的应用,Java、C++、.NET、C#等主流语言都支持面向对象的特性,面向对象程序的指针分析...  相似文献   

6.
基于区域内存模型的C程序静态分析   总被引:1,自引:0,他引:1  
为了提高程序的静态分析精度,提出了一种应用基于区域的符号化三值逻辑(region-based symbolic threevaluedlogic,简称RSTVL)的静态分析方法.RSTVL能够描述C程序运行时内存中数据结构的形态信息与变量的存储状态,以及可寻址表达式间的各种关系,包括指向关系、层次关系与取值逻辑关系.为了提高静态分析的精度,提出了一种基于RSTVL的流敏感、域敏感的过程内分析与基于符号化函数摘要的上下文敏感的过程间分析,能够精确地分析出每个程序点上的形态信息、数据流信息与指针指向关系.实验结果表明,相对于基于符号化三值逻辑的方法,该分析方法在保证一定分析效率的前提下,能够实现较高准确度的分析.  相似文献   

7.
用数据流分析方法检查程序信息流安全   总被引:2,自引:0,他引:2  
程序信息流安全是信息安全的一个重要研究方向.基于类型的分析虽然是检查程序信息流安全的一种有效方法,但过于保守.本文尝试将传统的数据流分析方法用于程序信息流安全的检查,即利用数据流分析来跟踪程序数据间的安全依赖关系,达到检查程序信息流安全的目的.和基于类型的方法相比,数据流分析方法能更加精确地分析程序,具有更大的宽容性.最后,本文对数据流分析方法的可靠性进行了证明.  相似文献   

8.
针对传统的WCET(Worst-Case Execution Time)分析方法面临的精度不高和用户使用繁琐问题,提出一种自动分析程序模式的方法并据此设计实现了一个面向Web的WCET分析系统。首先在对源程序进行分析的基础上,利用程序控制流程图,通过数据流框架进行切片,获得依赖于输入变量的无循环控制流程图ICFG。然后,通过对ICFG每条路径求解,获得程序的模式及其输入表达式,并计算其对应的WCET。最后,将上述分析方法设计实现为针对C语言的动态链接库(DLL),并利用该DLL实现一个面向Web的WCET自动分析系统——WCET Mode Analyzer。WCET Mode Analyzer对基准程序的分析结果,验证了该方案的有效性和应用的简便性。  相似文献   

9.
秦彪  郭帆  涂风涛 《计算机应用》2019,39(10):3018-3027
应用静态污点分析检测Android应用的隐私泄露漏洞会产生许多虚警,为此提出一种上下文敏感、路径敏感和域敏感的半自动程序分析方法,仅需遍历少量执行路径即可判定漏洞是否虚警。首先,运行插桩后的应用来获得一条覆盖Source和Sink的种子Trace。然后,应用基于Trace的污点分析方法来验证Trace中是否存在污点传播路径,是则表明漏洞真实存在;否则进一步收集Trace的条件集合和污点信息,结合活变量分析和基于条件反转的程序变换方法设计约束选择策略,以删除大部分与污点传播无关的可执行路径。最后,遍历剩余执行路径并分析相应Trace来验证漏洞是否虚警。基于FlowDroid实现原型系统,对DroidBench的75个应用和10个真实应用进行验证,每个应用平均仅需遍历15.09%的路径,虚警率平均降低58.17%。实验结果表明该方法可以较高效地减少静态分析结果的虚警。  相似文献   

10.
近年来静态程序分析已成为保障软件可靠性、安全性和高效性的关键技术之一.指针分析作为基础程序分析技术为静态程序分析提供关于程序的一系列基础信息,例如程序任意变量的指向关系、变量间的别名关系、程序调用图、堆对象的可达性等.介绍了Java指针分析的重要内容:指针分析算法、上下文敏感、堆对象抽象、复杂语言特性处理、非全程序指针分析,特别是对近年来指针分析的研究热点选择性上下文敏感技术进行了梳理和讨论.  相似文献   

11.
This paper presents an efficient computer method for inelastic and large deflection analysis of flexibly jointed steel frames, based on the most refined type of second-order inelastic analysis, the plastic zone analysis. The combined effects of material, geometric and connection behavior nonlinearity sources are simulated into an object-oriented Turbo-Pascal computer program automatically. This program was used to study the ultimate response of several steel frames which have been studied previously by other researchers. The example computations and the comparisons made have proved the effectiveness of the proposed analysis method.  相似文献   

12.
分析了系统分析面临的困难和传统的系统分析方法的缺点,介绍了面向对象的系统分析方法。给出OOA的五个基本原则,比较详细地剖析了面向对象时,由五个步骤构成系统的分析,并举例分析了一个具体模型。  相似文献   

13.
利用编译代码分析技术,提出一种适用于面向对象程序语言的程序理解与描述算法。该算法对面向对象程序源代码进行分析,获取程序相关知识信息,再对获取的信息进行抽象、推理及演绎,用可视化的形式表达程序细节,由此实现函数级算法结构的程序理解。测试结果证明,该算法能准确理解并清楚表达面向对象语言的结构信息。  相似文献   

14.
面向对象软件测试是面向对象软件开发的一个重要阶段,是保证软件质量、提高软件可靠性的关键,而类测试又是面向对象软件测试的关键。文章针对面向对象程序的特性对软件测试的影响,研究了一种基于状态的类测试方法,从而能够更有效地对面向对象软件进行测试,提高了软件的质量。  相似文献   

15.
Cost analysis statically approximates the cost of programs in terms of their input data size. This paper presents, to the best of our knowledge, the first approach to the automatic cost analysis of object-oriented bytecode programs. In languages such as Java and C#, analyzing bytecode has a much wider application area than analyzing source code since the latter is often not available. Cost analysis in this context has to consider, among others, dynamic dispatch, jumps, the operand stack, and the heap. Our method takes a bytecode program and a cost model specifying the resource of interest, and generates cost relations which approximate the execution cost of the program with respect to such resource. We report on COSTA, an implementation for Java bytecode which can obtain upper bounds on cost for a large class of programs and complexity classes. Our basic techniques can be directly applied to infer cost relations for other object-oriented imperative languages, not necessarily in bytecode form.  相似文献   

16.
17.
王静红 《微机发展》2005,15(6):62-64
面向对象软件测试是面向对象软件开发的一个重要阶段,是保证软件质量、提高软件可靠性的关键。文中针对面向对象程序的特点及对软件测试的影响,提出了一种基于状态的类测试的面向对象软件测试方法,该方法与有限状态机理论相结合,从而提高了软件的质量,使软件的执行高效、可靠。  相似文献   

18.
张术梅  孙辉 《微机发展》2007,17(1):125-127
测试用例的数量和质量决定软件测试的成本和有效性。文中提出了一种基于UML面向对象软件静态测试的方法,论述了软件测试方法的分类、静态分析方法的基本测试框架及具体实现流程。针对面向对象软件的特点,静态测试主要是通过分析源程序得到类关系图,使测试人员能快速而清晰地了解程序结构,有效地设计测试用例。探讨了在对源程序进行充分的词法分析与语法分析的基础上,提取程序中类的有关信息,利用了数据库技术和UML图形模型,从而保证了分析结果的准确有效和标准化。  相似文献   

19.
黄捷  古辉 《计算机系统应用》2011,20(5):51-54,149
通过计算机自动实现对程序的理解是目前国内外研究的热点内容。以面向对象程序为研究对象,提出了一种从面向对象程序中抽取类信息的规则,利用该规则可以将程序中的类以及其它程序信息抽取出来,并以UML类图形式表示出来,进而为计算机自动实现对程序的理解奠定基础。在本文中描述了产生UML类图中的各类规则,包括了类、属性、操作、对象、关系、继承、关联和接口等。最后介绍了该规则的一个应用实例。  相似文献   

20.
面向对象的LU-SGS流场计算程序设计   总被引:1,自引:0,他引:1  
杨珏  贾宝山  俞冀阳 《计算机工程》2002,28(12):235-236,281
介绍了求解多维定常可压缩流场的LU-SGS方法的面向对象的特性,通过全面的分析,提供了一种行之有效的面向对象的LU-SGS流场计算程序设计。  相似文献   

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

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