识别代码语义的方法、系统、制品和装置与流程

文档序号:34510731发布日期:2023-06-21 10:12阅读:40来源:国知局
识别代码语义的方法、系统、制品和装置与流程

本公开概括而言涉及代码分析,更具体而言,涉及识别代码语义的方法、系统、制品和装置。


背景技术:

1、近年来,代码开发者(例如,人类程序员、程序员、软件开发人员、自动化代码分析器,等等)已经被许多不同的编程语言、算法、数据类型和/或编程目标/任务所淹没。这样的代码开发者也有分析工具和/或集成开发环境(integrated development environment,ide)的大量选择,例如microsoft visual等等。各种ide为代码开发者提供了开发环境,这些环境具有协助编写代码和代码语法检查的工具。


技术实现思路

1、本公开的一个方面提供了一种识别代码语义的装置。该装置包括:接口电路,用来访问对于执行服务的第一请求;以及处理器电路,包括以下项中的一个或多个:中央处理单元、图形处理单元或者数字信号处理器中的至少一者,中央处理单元、图形处理单元或者数字信号处理器中的至少一者具有:控制电路,用来控制数据在处理器电路内的移动,算术和逻辑电路,用来执行与指令相对应的一个或多个第一操作,以及一个或多个寄存器,用来存储一个或多个第一操作的结果,指令在装置中;现场可编程门阵列(fpga),fpga包括逻辑门电路、多个可配置互连、以及存储电路,逻辑门电路和互连执行一个或多个第二操作,存储电路用来存储一个或多个第二操作的结果;或者专用集成电路(asic),包括逻辑门电路,用来执行一个或多个第三操作;处理器电路执行第一操作、第二操作或者第三操作中的至少一者,以使得以下项实例化:已验证存储库解析电路,用来识别与已验证代码相对应的嵌入值;语法分析电路,用来基于嵌入值的统计重现度量来识别语法信息;双向模型电路,用来基于(a)与语法信息相对应的语义信息和(b)与语法信息相对应的分部分割信息,来训练前向语义模型和后向语义模型;以及目标存储库挖掘电路,用来生成目标代码模型输入片段,目标代码模型输入片段包括学习到的句法信息、学习到的语义信息以及学习到的分部分割信息,其中,目标代码模型输入片段促进利用前向语义模型和后向语义模型进行的推断。

2、本公开的另一方面提供了一种计算机可读介质。该计算机可读介质包括指令,这些指令当被执行时,使得处理器电路至少:识别与已验证代码相对应的嵌入值;基于嵌入值的统计重现度量来识别语法信息;基于(a)与语法信息相对应的语义信息和(b)与语法信息相对应的分部分割信息,来训练前向语义模型和后向语义模型;并且生成目标代码模型输入片段,目标代码模型输入片段包括学习到的句法信息、学习到的语义信息以及学习到的分部分割信息,其中,目标代码模型输入片段促进利用前向语义模型和后向语义模型进行的推断。

3、本公开的另一方面提供了一种识别代码语义的设备。该设备包括:用于已验证存储库解析的装置,用来识别与已验证代码相对应的嵌入值;用于语法分析的装置,用来基于嵌入值的统计重现度量来识别语法信息;用于双向建模的装置,用来基于(a)与语法信息相对应的语义信息和(b)与语法信息相对应的分部分割信息,来训练前向语义模型和后向语义模型;以及用于目标存储库挖掘的装置,用来生成目标代码模型输入片段,目标代码模型输入片段包括学习到的句法信息、学习到的语义信息以及学习到的分部分割信息,其中,目标代码模型输入片段促进利用前向语义模型和后向语义模型进行的推断。

4、本公开的另一方面提供了一种方法。该方法包括:通过利用处理器电路执行指令,来识别与已验证代码相对应的嵌入值;通过利用处理器电路执行指令,来基于嵌入值的统计重现度量识别语法信息;通过利用处理器电路执行指令,来基于(a)与语法信息相对应的语义信息和(b)与语法信息相对应的分部分割信息,来训练前向语义模型和后向语义模型;并且通过利用处理器电路执行指令,来生成目标代码模型输入片段,目标代码模型输入片段包括学习到的句法信息、学习到的语义信息以及学习到的分部分割信息,其中,目标代码模型输入片段促进利用前向语义模型和后向语义模型进行的推断。

5、本公开的另一方面提供了一种设备,包括用于执行上述方法的装置。



技术特征:

1.一种识别代码语义的装置,该装置包括:

2.如权利要求1中限定的装置,其中,所述处理器电路实例化双向分析电路,用来:

3.如权利要求2中限定的装置,其中,所述处理器电路实例化合并电路,用来合并(a)前向目标语义输出数据和后向目标语义输出数据,以及(b)前向已审核语义输出数据和后向已审核语义输出数据。

4.如权利要求3中限定的装置,其中,所述处理器电路实例化代码片段比较电路,用来:

5.如权利要求4中限定的装置,其中,所述处理器电路实例化缺陷分析电路,用来标记所识别的代码片段中指示错误语义的各个代码片段。

6.如权利要求1或2中限定的装置,其中,所述嵌入值包括编程语言令牌或者编程语言操作对象中的至少一者。

7.如权利要求6中限定的装置,其中,所述编程语言令牌包括for语句、if语句或者switch语句中的至少一者。

8.如权利要求1或2中限定的装置,其中,所述双向模型电路用来:

9.至少一种计算机可读介质,包括指令,所述指令当被执行时,使得处理器电路至少:

10.如权利要求9中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路:

11.如权利要求10中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路合并:

12.如权利要求11中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路:

13.如权利要求12中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路标记所识别的代码片段中指示错误语义的各个代码片段。

14.如权利要求9中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路将所述嵌入值识别为编程语言令牌或者编程语言操作对象中的至少一者。

15.如权利要求14中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路将所述编程语言令牌识别为for语句、if语句或者switch语句中的至少一者。

16.如权利要求9中限定的至少一种计算机可读介质,其中,所述指令当被执行时,使得所述处理器电路:

17.一种识别代码语义的设备,该设备包括:

18.如权利要求17中限定的设备,其中,所述用于双向建模的装置用来:

19.一种方法,包括:

20.如权利要求19中限定的方法,还包括:

21.如权利要求20中限定的方法,还包括合并:

22.如权利要求21中限定的方法,还包括:

23.如权利要求22中限定的方法,还包括:通过利用所述处理器电路执行指令来标记所识别的代码片段中指示错误语义的各个代码片段。

24.如权利要求19或20中限定的方法,还包括将所述嵌入值识别为编程语言令牌或者编程语言操作对象中的至少一者。

25.一种设备,包括用于执行如权利要求19到24中任一项所述的方法的装置。


技术总结
公开了识别代码语义的方法、装置、系统和制品。一种示例装置包括处理器电路,用来执行第一、第二或者第三操作中的至少一者来使以下项实例化:已验证存储库解析电路,用来识别与已验证代码相对应的嵌入值,语法分析电路,用来基于嵌入值的统计重现度量来识别语法信息,双向模型电路,用来基于(a)与语法信息相对应的语义信息和(b)与语法信息相对应的分部分割信息来训练前向语义模型和后向语义模型,以及目标存储库挖掘电路,用来生成目标代码模型输入片段,目标代码模型输入片段包括学习到的句法信息、学习到的语义信息以及学习到的分部分割信息,其中,目标代码模型输入片段促进利用前向语义模型和后向语义模型进行的推断。

技术研发人员:贾斯汀·戈特施利希
受保护的技术使用者:英特尔公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1