首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 93 毫秒
1.
了解程序代码所描述的算法,能帮助程序员理解程序从而开展各项软件工程任务。由于人工理解程序算法要求程序员具备丰富的专业知识并且十分耗时耗力,程序算法识别任务以实现程序算法理解的自动化为主要研究目标,与人工理解相比更为高效、准确。系统整理了程序算法识别领域的相关工作。首先,梳理程序算法识别等相关概念,简介基于知识表示与基于信息检索的方法;其次,将基于代码表征的方法划分为基于序列、基于树和基于图等方法展开详细阐述,并对三类方法作出小结与对比;最后,介绍程序算法识别任务的相关应用领域,分析该任务中尚存的问题并对未来的发展作出展望。  相似文献   

2.
嵌入式设备在网络中引发了很多安全隐患,针对嵌入式系统的网络安全问题,识别其中的公钥密码算法是分析系统安全性的一个重要方面。在对公钥密码算法加密原理的研究以及在汇编级算法特征分析的基础上,提出了一种基于语义的公钥密码算法加密行为分析方法,可以对算法的加密行为进行准确地刻画,并结合模型检测技术完成对嵌入式系统中可能包含的公钥密码算法的识别。测试结果表明,该方法具有较好的准确性和稳定性。  相似文献   

3.
代码搜索任务旨在通过分析用户需求,结合用户意图来找到满足其需求的软件构件。在加强软件复用性的同时,提高软件开发维护效率,降低成本。与传统的文档检索不同,程序特性往往隐含在标识符和代码结构中,理解程序功能是实现高效代码搜索的关键。从深度程序理解视角切入对代码搜索任务进行定义,并总结梳理近期代码搜索研究进展。针对当前代码搜索研究评估方法和数据集进行了整理。针对研究中存在的问题,对未来代码搜索研究进行展望,为后来研究者提供参考。  相似文献   

4.
在可执行代码中识别密码算法对于查找恶意代码、保护计算机系统安全有着重要的意义。该文在对汇编级密码算法特征分析的基础上,提出了汇编级密码算法特征度量元的概念,并采用七维特征向量对其进行形式化描述,建立基于Bayes决策的密码算法识别模型,测试结果表明该模型稳定、准确,能够高效地定位代码中的密码算法。  相似文献   

5.
从源码中抽取设计模式对于提高软件可理解性和可维护性、软件设计重用以及软件重构具有重要意义。研究设计模式抽取技术的方法框架,并根据该框架对目前流行的几种设计模式抽取方法进行分类和比较,分析这些技术的优缺点,探讨该领域未来的研究方向和趋势。  相似文献   

6.
7.
蕴涵在程序代码中的语义是程序语言词法和语法的抽象表达,构成了人脑思维与机器思维交互过程的中间变换。从指称语义出发,结合具体语言,用形式化的方法讨论了语义等价和H-等价(Herbrand等价)。H-等价的判定条件相对来说更容易得到满足,具有更广泛的可用性。结合具体算法给出了H-等价在算法识别方面的应用成果及其局限性。  相似文献   

8.
基于多agent的程序理解方法研究   总被引:1,自引:1,他引:1  
王少锋 《计算机科学》2002,29(5):131-133
一、引言软件逆向工程的研究是软件工程领域的一个重要而实用的研究内容。逆向工程是在给定源代码的情况下理解软件结构的一个途径,其目的是标识软件系统中的构造块,抽取结构依赖关系,为系统创造另一种更高抽象形式的表示。软件逆向工程是基于以下的假设:构造软件系统的过程是从问题域到实现域的映射过程,这种映射是在正向工程中完成的,而且也是一个可逆的过程,可以在不同的抽象级别上被重构。程序理解是软件逆向工程的一个重要组成部分,程序理解技术的研究具有广阔的应用前景:如1)对软件复用的支持,用于标识可复用的软构件;2)对软件测试的支持,有助于选择测试用例;3)用于设计验证和错误检测等;4)对软件维护的支  相似文献   

9.
齐小刚  陈谌  李芷楠 《控制与决策》2022,37(8):1921-1933
针对存在非视距(non-line-of-sight, NLOS)的室内定位算法进行研究.首先描述室内定位中的常用技术和算法(航迹推算、指纹识别定位、邻近探测、极点定位、三角定位、多边定位、质心定位),概括其原理、优缺点和适用场景;其次,通过仿真测试说明研究NLOS识别和抑制的必要性;再次,分别介绍NLOS识别和NLOS抑制的几类算法, NLOS识别算法包括统计学方法、几何关系法、机器学习法、信道特征提取法和虚点密度识别法, NLOS抑制算法包括模糊理论法、引入平衡参数法、几何关系法、小波去噪法、机器学习类算法、凸优化类算法、残差类算法、最小二乘类算法和多维缩放类算法;最后,对全文进行总结并指出NLOS室内定位亟待解决的问题.  相似文献   

10.
应用层协议识别算法综述   总被引:2,自引:1,他引:2  
陈亮  龚俭  徐选 《计算机科学》2007,34(7):73-75
能够标识出Internet上每个流所使用的应用层协议是一系列网络应用的前提和基础。然而随着网络的高速化和协议的复杂化,传统的基于端口识别应用层协议的算法已经不够准确,因此各种新的协议识别算法成为研究热点。本文介绍了协议识别问题的几个基本概念,将目前正在使用或研究的协议识别算法总结为三类并分析了各自的优缺点及关键技术和难点,最后指出了两个进一步研究的方向。  相似文献   

11.
Program slicing and concept assignment have both been proposed as source code extraction techniques. Unfortunately, each has a weakness that prevents wider application. For slicing, the extraction criterion is expressed at a very low level; constructing a slicing criterion requires detailed code knowledge which is often unavailable. The concept assignment extraction criterion is expressed at the domain level. However, unlike a slice, the extracted code is not executable as a separate subprogram in its own right. This paper introduces a unification of slicing and concept assignment which exploits their combined advantages, while overcoming these two individual weaknesses. Our ‘concept slices’ are executable programs extracted using high-level criteria. The paper introduces four techniques that combine slicing and concept assignment and algorithms for each. These algorithms were implemented in two separate tools used to illustrate the application of the concept slicing algorithms in two very different case studies. The first is a commercially-written COBOL module from a large financial organization, the second is an open source utility program written in C. Copyright © 2005 John Wiley & Sons, Ltd.  相似文献   

12.
Program comprehension is a key activity throughout software maintenance and reuse. The knowledge acquired through comprehending programs can guide engineers to perform various kinds of software maintenance and reuse tasks. The effective comprehension strategy and the associated efficient approach, as well as the sophisticated tool support, are the indispensable elements for an entire solution to program comprehension to reduce the high costs of this nontrivial activity. This paper presents an objective-oriented comprehension strategy, contrasting to the traditional comprehensive understanding strategy in the literature. It is a kind of on-demand understanding for specific tasks and more effective in practice. In addition, using multiple information sources to understand programs is proposed with the corresponding framework. From these two points of views, we propose a feature-oriented program comprehension approach using requirement documentation. This approach aims at a specific category of feature-related software maintenance and reuse tasks. Case studies are conducted to evaluate the proposed solution. Results from the studied cases show that the experimental prototype provides more explicit advices for software engineers when performing these tasks.  相似文献   

13.
一种精简二进制代码的程序理解方法   总被引:3,自引:0,他引:3  
李卷孺  谷大武  陆海宁 《计算机应用》2008,28(10):2608-2612
精简二进制代码形式的软件是软件分析和程序理解需要处理的一类具有代表性的对象,基于高级语言源代码和调试符号信息的传统分析方法在处理此类软件时受到了极大限制。提出一种精简二进制形式软件的理解方法,首先将分析对象转变为运行期进程,引入实际运行中的进程信息;然后引入程序的行为特征,以程序表现出的外在行为和对外接口作为辅助信息,将此类外部特征映射到程序代码;最后基于切片思想和调试技术,获得程序切片并分析。这种方法为分析理解过程扩展了信息量,降低了复杂度,解决了分析此类软件时信息缺失和难以建立理解模型的问题。  相似文献   

14.
Automated program understanding by concept recognition   总被引:2,自引:2,他引:0  
Program understanding can be seen as the process of understanding abstract concepts in the program code. Thus, automated recognition of abstract concepts may greatly assist the human understanding process. This paper describes an approach to automated concept recognition and its implementation. In the approach, we use a concept model and a library of concept recognition rules to describe what the concepts are and how to recognize them from lower-level concepts. Programming language knowledge as well as domain knowledge are used to aid the recognition of abstract concepts.  相似文献   

15.
面向Java语言的设计模式抽取方法的研究   总被引:1,自引:0,他引:1  
从源码中抽取设计模式对于提高软件可理解性和可维护性、软件设计重用以及软件重构具有重要意义。文章面向Java语言提出了一个从源码中抽取设计模式的方法。具体地,研究了一种特定的设计模式描述方法、定义了源码信息模型及其化简方法,以此为基础提出了设计模式模型和源码模型的匹配方法。特别讨论了在抽取设计模式时与container类相关的问题及其解决方案。最后根据抽取结果从模式及其实例的角度对方法进行了评价,并提出了必要的优化技术。  相似文献   

16.
一种改进的静态程序切片算法   总被引:1,自引:0,他引:1  
提出了一种改进的静态程序切片算法,并应用到软件逆向工程中。在处理目标程序的过程间调用时,通过建立参数影射关系表,将过程间调用转换为过程内调用,简化了建立程序依赖图的复杂度;在归纳分析目标程序变量类型的基础上,给出了代数运算法则,对程序中的线性运算代码进行等价变换,缩减了切片程序的规模。最后通过具体的切片实例,证明了改进算法的有效性。  相似文献   

17.
基于协同表示的分类(CRC)以其卓越的协同能力成为人脸分类领域的一个突破。然而在实际应用中,通常只提供很少甚至是单个人脸图像来进行人脸识别,这导致了CRC无法很好地处理光照、表情、姿态和遮挡等问题。针对该问题,提出一种判别性双向协同表示的图像识别算法(DB-CRC)。首先通过引入判别式字典学习(FDDL)模型学习得到一个结构化字典,使得每个特定类的子字典对相关类的样本具有良好的表示能力,由此,较大的类间离散度和较小的类内离散度使得重构误差和编码系数都具有判别性;然后将学习得到的稀疏编码系数作为测试样本数据进行双向表达,建立快速逆向表示模型,利用双向表示策略估计每个测试样本与结构化字典之间的双向重构残差信息;最后利用竞争融合方法对来自双向表示模型的重构残差进行加权排名,实现最终的人脸分类。在AR、PIE、LFW等通用人脸数据库上的实验结果验证了该算法的有效性,特别是对小样本问题的鲁棒性。  相似文献   

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

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

京公网安备 11010802026262号