【技术实现步骤摘要】
【国外来华专利技术】信息处理程序、信息处理方法以及信息处理装置
[0001]本专利技术涉及信息处理程序等。
技术介绍
[0002]在计算机编程中,将程序的源代码中存在严重的问题的任一征兆称为代码异味(code smell)。例如,重复的代码、过长的方法、巨大的簇等成为代码异味。程序员通过使用Checkstyle、PMD、FindBugs等工具,能够自动地检查部分代码异味。
[0003]另一方面,有对构成文本的单词,基于相邻的单词来生成单词的多维矢量的现有技术(word2vec等)。通过将这样的现有技术应用于源代码(源程序),能够使用多维矢量来进行分析。通过该单词的多维矢量,能够提高检测代码异味的工具的精度。
[0004]专利文献1:日本特开2012-252519号公报
[0005]专利文献2:日本特开2016-177359号公报
[0006]专利文献3:日本特开2010-2961号公报
[0007]非专利文献1:Deep Learning Based Code Smell Detection,IEEEr/>’
1本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种信息处理程序,其特征在于,使计算机执行如下处理:通过对源代码执行词素解析,将上述源代码分割为多个保留字和多个变量,通过基于定义有保留字与静态代码的关系的静态词典,对上述源代码的保留字分配与保留字对应的静态代码,对上述源代码的变量分配动态代码,来生成压缩代码序列,对上述变量、分配给上述变量的动态代码以及上述变量的属性建立对应关系登记到动态词典中,通过基于与上述动态代码对应的属性,将上述动态代码嵌入到矢量空间,而将矢量分配给上述压缩代码序列的动态代码,将预先决定的矢量分配给上述压缩代码序列的静态代码,来计算上述源代码的矢量。2.根据权利要求1所述的信息处理程序,其特征在于,上述静态词典还定义声明语句与属性的关系,上述登记的处理还执行基于配置在上述变量之前方的声明语句的属性,来确定与上述变量对应的属性的处理。3.根据权利要求1所述的信息处理程序,其特征在于,在上述计算矢量的处理中,将与同一属性对应的多个动态代码嵌入到庞加莱空间的相似的位置,将与上述庞加莱空间的位置相应的矢量分配给嵌入的动态代码。4.根据权利要求1所述的信息处理程序,其特征在于,在上述生成压缩代码序列的处理中,对上述源代码的每个行生成上述压缩代码序列,在上述计算矢量的处理中,还执行如下处理:对每个行计算上述压缩代码序列的矢量,生成对各压缩代码序列的矢量和偏移建立对应关系的转置索引。5.根据权利要求1所述的信息处理程序,其特征在于,在上述生成压缩代码序列的处理中,对上述源代码所包含的每个函数生成上述压缩代码序列,在上述计算矢量的处理中,还执行如下处理:对每个函数计算压缩代码序列的矢量,生成对各压缩代码序列的矢量和偏移建立对应关系的转置索引。6.根据权利要求1~5中任一项所述的信息处理程序,其特征在于,还执行基于上述源代码的矢量来评价多个源代码的相似度的处理。7.根据权利要求4所述的信息处理程序,其特征在于,还执行如下处理:基于与成为查询的源代码的行对应的矢量和上述转置索引,来确定与成为查询的源代码的行相似的源代码的行。8.根据权利要求5所述的信息处理程序,其特征在于,还执行如下处理:基于与成为查询的源代码的函数对应的矢量和上述转置索引,来确定与成为查询的源代码的行对应的源代码的函数。9.一种信息处理方法,是由计算机执行的信息处理方法,其特征在于,执行如下处理:通过对源代码执行词素解析,将上述源代码分割为多个保留字和多个变量,通过基于定义有保留字与静态代码的关系的静态词典,对上述源代码的保留字分配与保留字对应的静态代码,对上述源代码的变量分配动态代码,来生成压缩代码序列,对上述变量、分配给上述变量的动态代码以及上述变量的属性建立对应关系登记到动态词典中,通过基于与上述动态代码对应的属性,将上述动态代码嵌入到矢量空间,而将矢量分
配给上述压缩代码序列的动态代码,将预先决定的矢量分配给上述压缩代码序列的静态代码,来计算上述源代码的矢量。10.根据权利要求9所述的信息处理方法,其特征在于,上述静态词典还定义声明语句与属性的关系,上述登记的处理还执行基于配置在上述变量之前方的声明语句的属性,来确定与上述变量对应的属性的处理。11.根据权利要求9所述的信息处理方法,其特征在于,上述计算矢量的处理将与同一属性对应的多个动态代码嵌入到庞加莱空间的相似的位置,将与上述庞加莱空间的位置相应的矢量分配给嵌入的动态代码。12.根据权利要求9所述的信息处理方法,其特征...
【专利技术属性】
技术研发人员:尾上聪,片冈正弘,百足勇人,中野太智,
申请(专利权)人:富士通株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。