静态下Java程序函数调用关系图的框架实践

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:zyx_xingfu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着计算机水平在不断的提高,其应用的领域也在逐渐的扩展,本文主要研究了JAVA程序,在函数之间的调用关系中,更好的研究程序理解,其中在函数之间中,它往往代表的是一种具体功能或者是问题求解的实现,最终构建了函数调解图,来促进程序的理解。本文研究了集中函数调用图,针对其优缺点,最终提出了一种函数调用图的构建方法。
  关键词:程序理解;函数调用图;构建
  中图分类号:TP311.10
  在研究计算机程序中,基本上大型的程序都是通过对函数的组织和调用来实现整个程序的功能要求,这样就需要函數之间的关系来分析,在采用函数调用图中,它是一种静态的对程序中的函数调用关系进行描述的方法,所以在函数调用关系图中,函数用节点表示,函数之间的调用关系用边表示,在研究调用图中,能够了解到程序之间的函数关系,来辅助理解程序的基本结构以及功能的实现。
  1 JAVA语言程序
  程序语言设计中,受JAVA语言法则规定以及面向对象程序设计的多样性,在编译期间基本都不能确定出函数调用点中接受对象的类型,所以在该语言程序中函数调用图中仅仅是通过大概的图示来对运行的实际函数调用关系进行促进,以此对函数调用的效率进行提高,从而可以构建出函数的调用图,为实际的程序应用提供了比较方便的调用关系,进一步提高了程序理解的应用。
  2 JAVA程序函数调用图典型的实现方法
  JAVA程序的函数调用图的构建中,其主要是运用三种典型的算法进行的,主要包括:类层次分析、快速类型分析以及独立的方法和域可用类型集合分析。其中前两种算法属于流不敏感分析,这种分析的方法容易实现,并且算法的具体流程比较简单,在调用图中最终提出了XTA,进一步加强了程序的精度。其中具体的算法表现在:
  2.1 类层次分析
  首先类层次分析是由美国教授J.Deam提出的,在具体的算法程序中,是通过类层次图得到的,一般情况下,程序中的个各类使用类层次图中的节点来表示的,各元素间继承关系则由具体的边来表示。根据得到的类层次图,在函数调用中如果对象的声明类型属于父类,那么其运行中就可能包括函数的父类及子类,那么对于某一个特定的函数调用而言,其算法中也就包含了父类及子类针对所有函数类型,这样就总结了类层次类函数调用。
  2.2 快速类型分析
  快速类型分析,其采用的是RTA分析法,该方法是在类层次分析方法的基础上进行完善而来的,主要思想是按照程序中的信息对接受对象进行进一步约减构成的可能性集合,从而提高函数的可调用图的效率。
  2.3 XTA算法
  相应的XTA算法是通过快速类型分析改进得到,其选择增量式方法进行分析,程序运用过程中,针对每一个声明变量,及函数给定的类型,构成集合,那么在每一个可用类型的集合中,涵盖了函数中的对象类型、可达函数中的可用类型等,最终将被调用函数的形式的声明类型、可用类型集合以及子类型集合的交集在函数的最后一部分进行应用。但是在XTA算法中,当被调用的函数出现返回类型时,那么返回值主要是添加在调用函数的可用类型集合中,从而构建出可调用函数的集合。
  3 一种XTA方法的改进算法
  函数算法的类型非常多样,在多种类型中,类型传播作为一种只对对象类型进行关注的简单数据流分析方式,包含了过程内及过程中的类型传播。在过程内类型传播分析中,指的是类型的传播依靠函数内从类型事件与调用函数点间的数据流分析,从而对函数调用中,接受对象类型集合的方式进行了有效的改善。在研究XTA方法中,去传播过程内的类型主要是对算法的设计进行具体的研究,具体的算法设计:
  在对算法进行设计的过程中,可达函数集合用R表示,变量e的声明类型采用的是StatemenType(e)表示,类t中所有子类集合采用sonTypes(t)表示,用StatiLookup(c,m)来表示类C中静态查找是否声明为m的函数,那么程序中函数M给定的集合用SM来表示,用SX表示对每一个域中X给定的一个特殊集合,这样,M)表示的是返回类型,其参数的声明类型是一个集合,但是对于可达函数M中的每一个实例化类型C给定的是一个特殊集合,最终得到了变量的集合。其主要的:
  步骤1:从函数mainO开始,mainR.
  步骤2:对于每一个函数M以及M中的每一个函数调用点e.mO,当M中存在一系列赋值语句,这样在类C的实例化语句中存在于M当中,并且能够通过程内的类型传播,其类C的实例化信息最终达到了e,并且属于Rc。
  步骤3:对于函数中M,其主要包括newC(这样的实例化信息,将初始化SM为在可达函数M中实例化的对象类型分析。
  步骤4:对于每一个函数M,在可用类型集合中,如果存在类CSonTypes,当可用类型集合中包含目标函数的类,这样对于该函数调用点中的接受对象来说。它主要是通过过程内的类型传播,最终将实例化的信息可达化,这样就符合了目标函数的条件,直接的将其加入到可达函数的集合R中,这样就能够通过参数传递将调用函数的可用类型集合被可调用函数的形参声明类型以及去子类型集合的交集最终传递给被调用函数,这样将其作为子函数的子集。但是对于在调用函数中的实例化对象类型,它能够同时的满足被调用函数的可用类型集合。
  步骤5:在函数M中,如果存在对域X的读取,这样就能够表示X可能指向的对象类型集合是该可达函数类型集合的子集。
  步骤6:函数M中,若存在对域X的写入,则可达函数中写入X,最终指向的对象类型集合包含X的声明类型以及子类型集合,最终将该可达函数的可用类型集合的交集完全的表现出来。
  算法的改进应用中,首先是用类层次分析法,从main函数开始,根据类层次图,最终得到可调用函数图,在快速类型法的原理中,将其约减。另外在采用XTA分析法中,在main实例化中将其初始可用类型进行集合,这样对于函数可调用点来说,在不受到可用类型集合构成的影响下,将实例化函数有效的构建,最后,在改进XTA方法中,由于需要将接受对象e的类型可达性,这就促使在XTA方法中,取得更好的效果。
  4 结束语
  通过研究类层分析、快速类型分析以及XTA改进分析法中,最终构建了函数可调用图的算法,这样在类层次分析中将其作为基础,最终通过分析对比,了解到:XTA方法是对快速类型分析法的有效改进,这样在函数的算法要求中,能够满足实用性和程序扩展性的要求,并且加强了算法的精度。在静态算法下采用JAVA程序函数可调用关系进一步提高了绘制函数调用图的效率,构建了有效的函数调用关系。
  参考文献:
  [1]赵云山,吉小丽,周丽.JAVA程序优化与数据竞争检测的研究[J].计算机工程与设计,2012(35).
  [2]李荣荣,刘震,杨克了.JAVA语言程序理解中算法可视化表示和实现的研究[J].计算机工程与设计应用,2013(22).
  [3]王亚纲,辛巳远,方海军.多语言源程序函数可调用关系图中的生成方法[J].国防电子科技研究工程,2011(20).
  [4]李永祥,王亚文,李光旭.一种对象粒度和上下文敏感的JAVA程序并发错误检测框架[J].小型微型计算机系统,2013(34).
  [5]宋东海,陈勇,刘红丹.一种基于调用链的JAVA程序数据竞争静态检测算法[J].舰船电子工程,2012(11).
  作者单位:陕西省电子工业学校,陕西宝鸡 721001
其他文献
摘 要:在移动自组网Ad Hoc网络中,链路中的节点一般都是采用电池供电,一旦电池电量耗尽,节点就会离开链路,造成网络中断,因此降低节点的能量消耗对保持链路的稳定至关重要,本文给出了基于最大能量邻居节点的路由发现算法,提出了基于AODV协议改进的Ad Hoc网络路由协议PER-AODV,该协议能够确保延长网络的生存时间和对低能量节点的保护以及重构次数的减少。  关键词:移动Ad Hoc网络;最大能
期刊
摘 要:软件本地化最主要的是用户界面的本地化,用户界面的资源文件有多种,同种资源文件又会涉及不同的内容(对话框、菜单、字符串)。这些文件在翻译过程中必须遵循一定的规范。本文主要介绍了软件源语言文件包中各种常见的在本地化过程中需要处理的用户界面文件及在本地化的操作过程中所要注意的问题。  关键词:本地化;用户界面;源文件;翻译  中图分类号:H059  软件是按照特定顺序组织的计算机程序代码、文档和
期刊
摘 要:本文首先简要介绍了RH精炼炉的处理过程及对安全性的要求,然后设计出了集成监控系统的网络结构,并针对网络结构的三个层次中的冗余技术及具体实现方式进行了详细说明,最后结合具体应用实践,给出了系统的应用效果。  关键词:冗余系统;PLC;通讯;计算机监控;过程控制系统;通讯链路  中图分类号:TP393.02  RH(真空循环脱气)钢水精炼炉主要是对转炉、LF炉出钢后的钢水进行脱气、脱碳、成分控
期刊
摘 要:随着科学技术的发展,当前图书资料管理手段日趋先进,伴随着集中式数据库技术在管理系统中的广泛运用,其诸多不足也日益显露出来。针对该不足之处,不少企业进行内部管理机制改革,由传统的集中式数据库管理技术转变为分布式数据库技术。分布式数据技术的应用,极大程度的弥补了集中式管理系统的缺陷。本文以图书资料管理系统中分布式数据库技术的实际应用为例,在阐释分布式数据库技术的应用现状的基础之上,分析其优点,
期刊
摘 要:随着现代计算机网络信息技术的不断发展,计算机网络已经成为了我们生活当中的重要组成部分。但是在计算机网络迅速发展的背景下其信息安全问题值得人们深思。本文主要对现阶段计算机网络信息安全所面临的问题进行了分析,在此基础上阐述了完善计算机网络信息安全的相关防护策略。  关键词:计算机;信息;防护  中图分类号:TP399  在计算机技术和互联网计算高速发展的背景下,对于整个社会的科学、经济以及文化
期刊
摘 要:社会对计算机专业人才的要求越来越高。文中主要针对计算机应用技术专业存在的问题,提出要准确定位专业办学方向、完善课程体系、加强高素质教学团队建设、改进教学模式、加强校内外实训平台建设等途径提高专业学生的职业能力。  关键词:计算机应用技术;师资队伍;职业能力  中图分类号:TP3-4  2012年7月,国务院发布了《“十二五“国家战略性新兴产业发展规划》,使信息网络产业、电子核心基础产业、高
期刊
【摘要】:呼和浩特职业学院根据学院的发展需求,以“构建优质网络平台,打造精品数字校园”为建设总目标,自2009年起,利用三年时间建设并完善1个平台、3个中心、1个体系,即基于校园网的软硬件基础平台,依托该平台的数据中心、信息服务中心、共享型教学资源中心和保障体系。建设一流的信息化网络环境,信息化教学资源,信息化教学与学习环境,信息化管理手段和工作环境,实现了信息化学习、信息化教学、信息化科研和信息
期刊
摘 要:培养优秀的应用型本科人才,就不能仅仅按照书本僵硬的进行教育,要具有新时代的特征,有开创性,积极探索,追求与时代同步,对人才进行特色化教育。该文以计算机专业人才威力,简述应用型人才培养,包括课程体系的完善,师资科研水平的提升,教学体系的优化,校企结合的相关措施,如何增加学生的动手机会等,从多方面简述应用性人才应如何培养,以培养更多地对国家有用的优秀应用性人才。  关键词:计算机专业;应用型本
期刊
摘 要:本文以数学形态学基本运算的介绍为基础,阐述了图像处理中常见的一些数学形态学方面的应用,其中有形态学图像重建、形态学图像滤波和形态学图像梯度。最后介绍了一种基于形态学的图像分割算法—分水岭算法,并以基于标记的分水岭分割算法为例,研究了形态学运算在图像分割前的预处理步骤和图像分割中帮助提取标记的作用,由此证明了数学形态学运算是图像处理领域中的一种有效方法和手段。  关键词:图像分割;形态学;分
期刊
摘 要:广电网络通过ZTE中兴MSTP传输网组建IP OVER SDH专线客户专网问题解决方案。通过修改330的SFE为透传模式,320为虚拟局域网模式,用户口和系统口均设置为接入模式,并设置相应的PVID的方式,实现了用户网络的正常通信。  关键词:广电网络;MSTP传输网;专线组网;接入模式;干线模式;透传模式;IP OVER SDH  中图分类号:TN915.63  某专线客户通过我公司的Z
期刊