共查询到20条相似文献,搜索用时 93 毫秒
1.
2.
一种可行的自动程序理解途径 总被引:1,自引:0,他引:1
自动程序理解是软件工程和人工智能的非常活跃的研究领域,本文提出了一种独立于程序设计语言,具有明显结构性和流图结构的中间表示plan来表示程序代码,本文首次提出了应用图文法分析技术于自动程序理解的方法,并给出了基于人工智能技术来进行自动程序理解的模型。 相似文献
3.
纳荣 《计算机工程与设计》2003,24(1):30-32,49
对于遗产软件的理解和维护在软件研究领域中已经变得越来越重要,综述了程序理解的策略及工具,引入了程序切片的思想,并在此基础上对传统的切片方法进行改进以更好地完成程序理解的任务。 相似文献
4.
了解程序代码所描述的算法,能帮助程序员理解程序从而开展各项软件工程任务。由于人工理解程序算法要求程序员具备丰富的专业知识并且十分耗时耗力,程序算法识别任务以实现程序算法理解的自动化为主要研究目标,与人工理解相比更为高效、准确。系统整理了程序算法识别领域的相关工作。首先,梳理程序算法识别等相关概念,简介基于知识表示与基于信息检索的方法;其次,将基于代码表征的方法划分为基于序列、基于树和基于图等方法展开详细阐述,并对三类方法作出小结与对比;最后,介绍程序算法识别任务的相关应用领域,分析该任务中尚存的问题并对未来的发展作出展望。 相似文献
5.
6.
程序理解是软件维护中的一项重要活动。从软件维护和认知学的角度分析了程序理解的任务,描述了几种主流的程序理解的模型。最后针对影响程序理解的因素提出了相应的对策,为提高维护效率提供帮助。 相似文献
7.
付世敏 《数字社区&智能家居》2013,(4):893-896
随着我国经济和社会的发展,我国核电产业已进入繁荣发展时期,但现有核电软件已不能满足我国现阶段核电发展需求。为了对我国现有核电软件进行升级改造,在原有核电软件基础之上进行软件重用或再工程成为一个迫切的需求,这就会涉及到核电程序理解的问题。由于核电领域的专业性和复杂性,在核电软件分析的实践基础上,通过引入一般性程序理解采用的技术、模型,引出了核电软件理解需要的技术、模型、步骤。以Copernic程序为例,重点介绍了核电软件理解的过程以及物理模型的建立过程,总结出了一套对核电软件程序理解切实可行的方案,这对我国核电的发展具有十分现实的意义。 相似文献
8.
9.
程序理解是软件维护中的一项重要活动。从软件维护和认知学的角度分析了程序理解的任务,描述了几种主流的程序理解的模型。最后针对影响程序理解的因素提出了相应的对策,为提高维护效率提供帮助。 相似文献
10.
通常情况下,人们把程序调试理解成识别并纠正程序中的错误代码的过程。调试是一项非常困难的工作,因为错误代码只能通过它们所导致的错误来间接地找到。本文所要介绍的Delta Debugging是一种有效地对程序错误进行定位的方法。给定一个正确的程序和相关的错误的程序,它能够通过程序的执行状态来找到引起程序出错的变量及变量的值。 相似文献
11.
The present paper discusses a method of program construction based on the specification of the data types. The input and output data types and the mapping between them are specified at a high level of abstraction and this non-procedural specification is used to develop a program schema. The data type and mapping specifications are modified to include a concrete representation of the data and these are used to expand the program schema into a program. A graphical representation for data and program specifications is also introduced and it is shown how this can simplify the techniques and be very useful in program construction. The method is illustrated by developing two programs—the line justifier program described by Gries and the bubblesort. 相似文献
12.
Stuart I. Feldman 《Software》1979,9(4):255-265
Good programmers break their projects into a number of pieces, each to be processed or compiled by a different chain of programs. After a set of changes is made, the series of actions that must be taken can be quite complex, and costly errors are frequently made. This paper describes a program that can keep track of the relationships between parts of a program, and issue the commands needed to make the parts consistent after changes are made. Make has been in use on UNIX 1 UNIX is a trademark of Bell Laboratories. systems since 1975. The underlying idea is quite simple and can be adapted to many other environments. 相似文献
13.
14.
程序缺陷分析与安全保护技术研究 总被引:2,自引:0,他引:2
程序安全是信息安全研究的一个重要方向,主要研究程序缺陷分析和安全保护技术等.介绍程序缺陷分析研究及其分类方法,然后将程序安全保护研究分为三类主要途径进行重点阐述和分析,最后讨论程序安全研究的发展趋势. 相似文献
15.
以问题结构为基础的递归程序设计 总被引:7,自引:0,他引:7
对递归程序的结构进行了较为深入的研究,提出了递归程序的更一般结构,根据此结构,给出了复杂的递归疸的程序设计方法,根据此方法,可方便地写出较为复杂的递归问题的递归程序,从而提高设计递归程序的效率。 相似文献
16.
A program profiling system for the language Algol 68-R is described. The system provides deterministic information concerning the run-time behaviour of certain Algol language constructs. This is accomplished by preprocessing program texts prior to compilation using a syntax analyzer for Algol 68-R. 相似文献
17.
Jong Yih Kuo Author Vitae Fu Chu Huang Author Vitae 《Journal of Systems and Software》2010,83(12):2478-2486
The online course management system (OCMS) assists online instruction in various aspects, including testing, course discussion, assignment submission, and assignment grading. This paper proposes a plagiarism detection system whose design is integrated with an OCMS. Online assignment submission is prone to easy plagiarism, which can seriously influence the quality of learning. In the past, plagiarism was detected manually, making it very time-consuming. This research thus focuses on developing a system involving code standardization, textual analysis, structural analysis, and variable analysis for evaluating and comparing programming codes. An agent system serves as a daemon to analyze the program codes for OCMS. For textual analysis, the Fingerprinting Algorithm was used for text comparison. Structurally, a formal algebraic expression and a dynamic control structure tree (DCS Tree) were utilized to rebuild and evaluate the program structure. For variables, not only the relevant information for each variable was recorded, but also the programming structure was analyzed where the variables are positioned. By applying a similarity measuring method, a similarity value was produced for each program in the three aspects mentioned above. This research implements an Online Detection Plagiarism System (ODPS) providing a web-based user interface. This system can be applied independently for assignment analysis of Java programs. After three comparison experiments with other researches, the results demonstrated the ODPS has many advantages and good performance. Meanwhile, a combined approach is proven that it is better than a single approach for source codes of various styles. 相似文献
18.
Difference-lists are terms that represent lists. The use of difference-lists can speed up most list-processing programs considerably.
Prolog programmers routinely use “difference-list versions” of programs, but very little investigation has taken place into
difference-list transformation. Thus, to most programmers it is either unknown that the use of difference-lists is far from
safe in all contexts, or else this fact is known but attributed to Prolog’s infamous “occur check problem.” In this paper
we study the transformation of list-processing programs into programs that use differencelists. In particular we are concerned
with finding circumstances under which the transformation is safe. We show that dataflow analysis can be used to determine
whether the transformation is applicable to a given program, thereby allowing for automatic transformation. We prove that
our transformation preserves strong operational equivalence.
This paper is a revised and extended version of a paper10) that was presented to theInternational Computer Science Conference 88 in Hong Kong December 1988. 相似文献
19.
20.
Population initialisation in genetic programming is both easy, because random combinations of syntax can be generated straightforwardly,
and hard, because these random combinations of syntax do not always produce random and diverse program behaviours. In this
paper we perform analyses of behavioural diversity, the size and shape of starting populations, the effects of purely semantic
program initialisation and the importance of tree shape in the context of program initialisation. To achieve this, we create
four different algorithms, in addition to using the traditional ramped half and half technique, applied to seven genetic programming
problems. We present results to show that varying the choice and design of program initialisation can dramatically influence
the performance of genetic programming. In particular, program behaviour and evolvable tree shape can have dramatic effects
on the performance of genetic programming. The four algorithms we present have different rates of success on different problems.
相似文献
Colin G. JohnsonEmail: |