期刊文献+
共找到4篇文章
< 1 >
每页显示 20 50 100
基于程序分析的代码查询技术 被引量:2
1
作者 曾锃 赵建华 《计算机科学》 CSCD 北大核心 2012年第2期143-147,共5页
提出了一种基于程序分析的代码查询技术,它能有效地应用于代码审查、程序自动插桩等常用的软件工程的研究场景。它通过代码静态分析获得程序元素信息,并将其保存为中间结构,作为代码查询过程的目标集合;查询过程以程序元素为目标,查询... 提出了一种基于程序分析的代码查询技术,它能有效地应用于代码审查、程序自动插桩等常用的软件工程的研究场景。它通过代码静态分析获得程序元素信息,并将其保存为中间结构,作为代码查询过程的目标集合;查询过程以程序元素为目标,查询语言以谓词逻辑表达式的形式描述查询条件。基于此技术,实现了一个面向C/C++语言的代码查询工具。 展开更多
关键词 代码查询技术 查询语言 静态分析
在线阅读 下载PDF
基于约束求解的代码查询技术在StackOverflow上的实证研究 被引量:1
2
作者 陈正钊 姜人和 +2 位作者 潘敏学 张天 李宣东 《计算机科学》 CSCD 北大核心 2019年第11期137-144,共8页
代码查询在代码复用的过程中起着十分重要的作用,而面向程序员的专业问答网站StackOverflow上围绕代码的问答则是代码复用的一个典型场景。在这个现实场景中,采取的是人工回答的方式,而人工回答往往存在实时性较差、提问描述不准确、回... 代码查询在代码复用的过程中起着十分重要的作用,而面向程序员的专业问答网站StackOverflow上围绕代码的问答则是代码复用的一个典型场景。在这个现实场景中,采取的是人工回答的方式,而人工回答往往存在实时性较差、提问描述不准确、回答可用性不高等缺点,但如果采取代码查询的方式搜寻可用代码来实现自动化并替代人工回答,则可以省去大量的人力和时间成本。目前已经出现了许多代码查询技术,但大都缺少在真实案例上的应用经验,文中以Satsy的思路为参考,实现了针对Java语言的基于约束求解的代码查询技术,并设计了实证研究,以StackOverflow为研究对象,主要研究如何将基于约束求解的代码查询技术应用在该网站上围绕代码的问答中。首先对网站上的问题进行了分析,针对Java语言提取了浏览量高的35个问题作为查询问题;然后在GitHub上抓取了约3万行代码,将它们转换成约束的形式并构建了一个较大规模的代码库以支持代码查询;最后通过对这35个问题的查询结果进行分析,评估了该技术在StackOverflow上的实际应用效果。结果表明,该技术在所研究的具体问题和代码规模上具有较好的实际应用效果,在相当高的程度上能替代人工回答。 展开更多
关键词 代码查询 约束求解 开源代码 实证研究
在线阅读 下载PDF
CodeSearcher:基于自然语言功能描述的代码查询 被引量:1
3
作者 陆龙龙 陈统 +1 位作者 潘敏学 张天 《计算机科学》 CSCD 北大核心 2020年第9期1-9,共9页
在项目开发过程中,开发者需要为实现某一功能而编写代码;在不确定如何使用特定编程语言来实现当前待开发功能时,其往往会在文档或网络资源中进行代码查询。因此,代码查询的有效性会直接影响软件开发的效率。目前,已有相当数量的工具可... 在项目开发过程中,开发者需要为实现某一功能而编写代码;在不确定如何使用特定编程语言来实现当前待开发功能时,其往往会在文档或网络资源中进行代码查询。因此,代码查询的有效性会直接影响软件开发的效率。目前,已有相当数量的工具可以用来辅助开发者进行代码查询,但这些工具普遍存在输入形式复杂或者匹配精确度低等问题。文中提出的CodeSearcher是一种基于自然语言功能描述的代码查询方法。CodeSearcher将软件开发垂直领域的问答网站Stack OverFlow的问答记录转换为〈自然语言描述,代码片段〉数据对,使用神经网络模型将“自然语言描述”和“代码片段”映射到相同的向量空间并进行匹配,从而能够支持开发者使用待开发功能的自然语言描述来查询相应代码。CodeSearcher不同于一般的代码查询系统,一方面,它只需要代码本身而不依赖于代码的注释或说明,因此可以支持更多代码查询的场景;另一方面,它拓展了代码查询的流程,使其不再局限于一次性的查询反馈流程,而是在这中间加入了代码询答的流程,利用返回代码片段之间的差异性元素帮助开发者挑选目标代码,使得开发者不需要详细阅读所有返回的代码片段。实验结果表明,CodeSearcher相较于基准有着更好的效果。 展开更多
关键词 代码查询 自然语言处理 Stack OverFlow
在线阅读 下载PDF
一种基于UML关系的Java代码库构造方法 被引量:4
4
作者 姜人和 郑晓梅 +2 位作者 朱晓倩 潘敏学 张天 《计算机科学》 CSCD 北大核心 2017年第11期69-79,共11页
关系信息是体现代码结构和语义的最重要的一类信息,如继承、聚合、组合、依赖、调用和创建实例等。为了更好地支持开源代码的理解与复用,提出了一种基于UML2关系的代码库构造方法。它以图数据库为实现平台,采用语言工程中经典的抽象语... 关系信息是体现代码结构和语义的最重要的一类信息,如继承、聚合、组合、依赖、调用和创建实例等。为了更好地支持开源代码的理解与复用,提出了一种基于UML2关系的代码库构造方法。它以图数据库为实现平台,采用语言工程中经典的抽象语法树作为基础,并针对Java语言的特性和机制,设计富语义的Java代码属性图数据模型,在此基础上使得Java代码的图结构持久化。同时,为了屏蔽各种编程语言社区对代码中关系信息理解的差异性,采用UML2.4国际标准版本中定义的关系类型及语义解释,设计相应的代码关系抽取算法,为图节点添加对应的关系边。针对代码图化后的膨胀及代码库的空间存储消耗情况,选取9个常见的开源项目进行了实验评估。最后,给出了基于此代码库的查询应用实例。 展开更多
关键词 代码 UML 图数据库 代码查询
在线阅读 下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部