[发明专利]一种基于语法分析树的程序代码平行语料挖掘方法及系统在审
申请号: | 202110162209.8 | 申请日: | 2021-02-05 |
公开(公告)号: | CN112905232A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 杨永全;孙铭;魏志强 | 申请(专利权)人: | 中国海洋大学;青岛海洋科学与技术国家实验室发展中心 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京工信联合知识产权代理有限公司 11266 | 代理人: | 姜丽楼 |
地址: | 266100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语法分析 程序代码 平行 语料 挖掘 方法 系统 | ||
本发明公开了一种基于语法分析树的程序代码平行语料挖掘方法及系统,包括:获取同一项目对应的基于两种不同类型的编程语言编写的第一源码文件和第二源码文件,并进行语法分析,以获取第一语法分析树和第二语法分析树;根据节点信息从所述第一语法分析树和第二语法分析树的根节点开始依次向下进行节点匹配,以确定至少一组匹配成功的属于第一语法分析树的第一语法分析子树和属于第二语法分析树的第二语法分析子树;确定每组匹配成功的第一语法分析子树在所述第一源码文件的字符流中的第一首尾位置和第二语法分析子树在所述第二源码文件的字符流中的第二首尾位置,并根据每组的第一首尾位置和第二首尾位置进行代码提取,以获取多组平行语料。
技术领域
本发明涉及代码分析技术领域,并且更具体地,涉及一种基于语法分析树的程序代码平行语料挖掘方法及系统。
背景技术
由于缺乏平行语料,现有的翻译模型在编程语言转换领域中的应用比较有限,因此程序代码的平行语料挖掘对于编程语言翻译系统的构建和验证具有重要意义。用户对于编程语言平行语料挖掘的需求主要体现在以下方面:(1)基于神经网络模型的编程语言翻译系统需要大量的编程语言平行语料进行模型的训练和验证。(2)现存开源代码仓库拥有庞大的编程语言数据,且大量项目都具有多语言版本。这类项目在从一个语言迁移到另一个语言的过程中往往会保留其原来的设计和模式,因此源码在结构和逻辑上具有高度的相似性,其中的平行语料具有比较高的利用价值,需要一种能够自动化地识别并提取平行代码结构的方法和工具来从已有数据中提取出大量的平行语料。
语法分析树是对编程语言进行语法分析的产物,它能够将源码从底层实现向上逐步抽象,将各部分的具体代码映射到语法树上相应的位置。
因此,需要一种基于语法分析树完成编程语言平行语料的自动化提取的方法。
发明内容
本发明提出一种基于语法分析树的程序代码平行语料挖掘方法及系统,以解决如何自动化地对不同编程语言对应的源码中存在的平行语料进行挖掘的问题。
为了解决上述问题,根据本发明的一个方面,提供了一种基于语法分析树的程序代码平行语料挖掘方法,所述方法包括:
获取同一项目对应的基于两种不同类型的编程语言编写的第一源码文件和第二源码文件,并分别对所述第一源码文件和第二源码文件进行语法分析,以获取第一语法分析树和第二语法分析树;其中,所述语法分析树,包括:至少两个节点和每个节点的节点信息;
根据节点信息从所述第一语法分析树和第二语法分析树的根节点开始依次向下进行节点匹配,以确定至少一组匹配成功的属于第一语法分析树的第一语法分析子树和属于第二语法分析树的第二语法分析子树;
确定每组匹配成功的第一语法分析子树在所述第一源码文件的字符流中的第一首尾位置和第二语法分析子树在所述第二源码文件的字符流中的第二首尾位置,并根据每组的第一首尾位置和第二首尾位置进行代码提取,以获取多组平行语料。
优选地,其中所述方法基于不同类型的编程语言的语法和ANTLR生成与不同类型的编程语言对应的语法分析器,并利用生成的语法分析器读入相同类型的编程语言对应的源码文件的输入流并进行分词处理,以获取词法符号流,并对所述词法符号流进行递归下降的语法分析,以获取语法分析树。
优选地,其中所述根据节点信息从所述第一语法分析树和第二语法分析树的根节点开始依次向下进行节点匹配,以确定至少一组匹配成功的属于第一语法分析树的第一语法分析子树和属于第二语法分析树的第二语法分析子树,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国海洋大学;青岛海洋科学与技术国家实验室发展中心,未经中国海洋大学;青岛海洋科学与技术国家实验室发展中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110162209.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种柔性电池及其制备方法
- 下一篇:一种台扇前后网罩安装辅助对位压紧装置