首页> 外文期刊>The Computer journal >Recognizing Algorithms Using Language Constructs, Software Metrics and Roles of Variables: An Experiment with Sorting Algorithms
【24h】

Recognizing Algorithms Using Language Constructs, Software Metrics and Roles of Variables: An Experiment with Sorting Algorithms

机译:使用语言构造,软件度量和变量作用识别算法:排序算法实验

获取原文
获取原文并翻译 | 示例

摘要

Program comprehension (PC) is a research field that has been extensively studied from different points of view, including human program understanding and mental models, automated program understanding, etc. In this paper, we discuss algorithm recognition (AR) as a subfleld of PC and explain their relationship. We present a method for automatic AR from Java source code. The method is based on static analysis of program code including various statistics of language constructs, software metrics, as well as analysis of roles of variables in the target program. In the first phase of the method, a number of different implementations of the supported algorithms are analyzed and stored in the knowledge base of the system as learning data, and in the second phase, previously unseen algorithms are recognized using this information. We have developed a prototype and successfully applied the method for recognition of sorting algorithms. This process is explained in the paper along with the experiment we have conducted to evaluate the performance of the method. Although the method, at its current state, is still sensitive to changes made to target algorithms, the encouraging results of the experiment demonstrate that it can be further developed to be used as a PC method in various applications, as an example, in automatic assessment tools to check the algorithms used by students, the functionality that is currently missing from these tools.
机译:程序理解(PC)是一个从不同角度进行了广泛研究的研究领域,包括对人类程序的理解和心理模型,对程序的自动理解等。在本文中,我们讨论算法识别(AR)作为PC的一个子领域。并解释他们的关系。我们提出了一种从Java源代码自动进行AR的方法。该方法基于程序代码的静态分析,包括对语言结构,软件指标的各种统计信息,以及对目标程序中变量作用的分析。在该方法的第一阶段,对支持算法的多种不同实现方式进行分析,并将其作为学习数据存储在系统的知识库中;在第二阶段,使用此信息识别以前看不见的算法。我们已经开发出原型,并将该方法成功地应用于识别排序算法。本文将对这一过程进行说明,并进行实验以评估该方法的性能。尽管该方法在当前状态下仍然对目标算法所做的更改敏感,但令人鼓舞的实验结果表明,该方法可以进一步开发以用作各种应用中的PC方法,例如,在自动评估中工具来检查学生使用的算法,这些工具当前缺少的功能。

著录项

  • 来源
    《The Computer journal》 |2011年第7期|p.1049-1066|共18页
  • 作者单位

    Department of Computer Science and Engineering, Aalto University School of Science and Technology,PO Box 15400, FI-00076 AALTO, Finland;

    Department of Computer Science and Engineering, Aalto University School of Science and Technology,PO Box 15400, FI-00076 AALTO, Finland;

    Department of Computer Science and Engineering, Aalto University School of Science and Technology,PO Box 15400, FI-00076 AALTO, Finland;

  • 收录信息 美国《科学引文索引》(SCI);美国《工程索引》(EI);
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    algorithm recognition; program comprehension; program understanding; static program analysis; roles of variables;

    机译:算法识别;程序理解;程序理解;静态程序分析;变量的作用;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号