基于本体的程序代码资源算法结构关联研究

基于本体的程序代码资源算法结构关联研究

论文摘要

随着计算机技术的高速发展,程序设计教学正在受到各个学校越来越多重视。国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM/ICPC)作为一种全新的培养计算机科学顶尖学生的方式很快受到各个大学的积极响应。目前有很多ACM程序设计选手积累自己平时做题的解题思路,并将这些解题思路上传到他们的Blog上以分享给程序设计爱好者参考学习。这些题解报告都是分散地存在网络上,但有些题目之间很类似,重复学习不能带来实质性的进展。目前有一些大牛来根据自己多年的做题经验进行总结分析自己所做过的题目,很多初学者跟着大牛的脚步在前进。但是互联网上的题目浩如烟海,单凭个人的人力是很难对其进行全面的研究。因此,需要一种有效的方法来分析解题报告,包括其中的解题思路和程序代码。最终在解题思路与解题思路之间建立联系,在程序代码与程序代码之间建立联系,和在解题思路与程序代码之间建立联系,形成三维一体的有机体,从而更有效地进行教育教学以及个性化学习。本文分别对解题报告中的程序设计代码和解题思路进行分析处理,具体如下:1)对JAVA程序代码的处理。首先,由于JAVA程序代码编写的灵活性,直接将其送给机器进行处理会比较麻烦。本文将其进行词法分析和语法分析转换成与其一一对应的语法树,处理起来方便了很多。然后,本文想让机器能够根据语义自动处理这些数据,但语法树中并没有明确的语义标签,因此我们了结合拥有语义标签的本体技术,将JAVA程序代码使用本体表示。其次,JAVA程序代码使用本体表示后,我们可以自己写代码来检索想要的算法结构。但这样比较麻烦,本文通过本体查询语句描述算法结构来查询算法,并且这些查询语句是根据代码或伪代码自动生成的。本体查询语言的语法规则很适合描述算法结构,并且本体查询语言拥有强大的推理能力,为算法识别提供了很好的支持。最后,将算法使用本体查询语言描述查找类似的算法,根据查询结果在算法之间建立联系。2)对解题思路的处理。参加ACM比赛的学生很多,数以万计的题目以及解题报告分散在网络中。课题组中已有同学根据专家库中预定义的算法类别对解题报告进行分类,但是预定义的专家库具有一定的局限性。本文首先使用自然语言处理技术处理解题报告中的解题思路,自动获取算法名,形成知识库,用于对题目分类。解题思路中很多描述算法的语句具有一些特定的模式,本文使用斯坦福大学的中文分词器和解析器工具,对这些语句按照特定的模式进行分析处理,自动获取算法名,形成知识库。有了知识库后,我们就可以在解题思路中查找知识库中所包含的算法,并根据具体的算法在解题思路之间建立联系。由于解题报告中解题思路与程序代码是一一对应的,根据一个解题思路,我们可以找到与其有关系的其他解题思路所对应的程序代码,最终在解题思路与程序代码之间建立联系。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 绪论
  • 1.1 引言
  • 1.2 课题背景及意义
  • 1.3 研究现状
  • 1.4 研究内容与解决方法
  • 1.5 论文的组织结构
  • 1.6 本章小结
  • 第2章 相关概念与术语
  • 2.1 编译原理
  • 2.2 解题报告
  • 2.3 自然语言处理技术
  • 2.4 本体
  • 2.5 本章小结
  • 第3章 JAVA程序代码的本体表示
  • 3.1 引言
  • 3.2 构造JAVA程序设计语言本体
  • 3.3 实例化JAVA程序代码
  • 3.4 抽象JAVA程序设计语言本体
  • 3.5 本章小结
  • 第4章 算法识别与建立联系
  • 4.1 引言
  • 4.2 程序代码中间结构的生成
  • 4.3 本体查询语句的生成
  • 4.4 建立联系
  • 4.5 本章小结
  • 第5章 本体推理与自然语言处理
  • 5.1 引言
  • 5.2 本体推理
  • 5.3 模式匹配
  • 5.4 自然语言处理
  • 5.5 本章小结
  • 第6章 实验
  • 6.1 实验步骤
  • 6.2 JAVA程序设计语言本体创建
  • 6.3 算法识别
  • 6.4 自然语言处理
  • 6.5 本章小结
  • 第7章 结束语
  • 7.1 研究工作总结
  • 7.2 研究贡献及创新
  • 7.3 未来工作展望
  • 参考文献
  • 附录A JAVA程序设计语言本体
  • 附录B 算法名
  • 攻读学位期间的研究成果目录
  • 致谢
  • 相关论文文献

    • [1].利用代码重构改善软件设计[J]. 信息记录材料 2020(09)
    • [2].代码对比与动态规划[J]. 电脑编程技巧与维护 2017(03)
    • [3].什么样的代码才是好代码[J]. 计算机与网络 2017(06)
    • [4].安全通论(14)——病毒式恶意代码的宏观行为分析[J]. 成都信息工程大学学报 2017(01)
    • [5].恶意代码同源判定技术综述[J]. 通信技术 2017(07)
    • [6].基于方法的克隆代码检测[J]. 信息与电脑(理论版) 2017(13)
    • [7].市代码[J]. 山西教育(招考) 2020(03)
    • [8].有关信息代码[J]. 山西教育(招考) 2019(02)
    • [9].关于机场的冷知识[J]. 意林 2019(22)
    • [10].市代码[J]. 山西教育(招考) 2016(08)
    • [11].代码自动生成及代码上下文分析研究综述[J]. 数据通信 2020(02)
    • [12].智能代码补全研究综述[J]. 软件学报 2020(05)
    • [13].基于文本分类技术的恶意代码检测工具应用[J]. 科技经济导刊 2020(27)
    • [14].克隆代码映射的方法与应用[J]. 计算机工程与应用 2017(06)
    • [15].基于增强描述的代码搜索方法[J]. 软件学报 2017(06)
    • [16].银行代码安全审计工作探索与实践[J]. 网络安全技术与应用 2017(08)
    • [17].重视统一信用代码的应用[J]. 浙江经济 2017(19)
    • [18].代码依恋检测与重构研究[J]. 电子科技 2016(11)
    • [19].基于相识度的恶意代码检测[J]. 计算机科学 2015(01)
    • [20].有关信息代码[J]. 山西教育(招考) 2018(03)
    • [21].有关信息代码[J]. 山西教育(招考) 2016(Z1)
    • [22].有关信息代码[J]. 山西教育(招考) 2011(08)
    • [23].基于模糊识别恶意代码检测技术的研究[J]. 微电子学与计算机 2014(06)
    • [24].恶意代码加壳脱壳技术[J]. 辽宁警专学报 2014(05)
    • [25].代码复查的要点探讨[J]. 技术与市场 2013(06)
    • [26].代码规制:构建安全文明网络的必由之路[J]. 保密科学技术 2013(07)
    • [27].消除隔阂,提升效率——MATHWORKS推出基于MATLAB生成HDL代码的产品[J]. 世界电子元器件 2012(05)
    • [28].C~#托管代码调用非托管代码参数传递的实现方法[J]. 软件导刊 2011(01)
    • [29].恶意代码与信息安全[J]. 硅谷 2011(18)
    • [30].代码证书遗失声明[J]. 大众标准化 2010(12)

    标签:;  ;  ;  ;  ;  

    基于本体的程序代码资源算法结构关联研究
    下载Doc文档

    猜你喜欢