【技术实现步骤摘要】
【国外来华专利技术】用于两遍源代码转换的方法、设备和介质
[0001]相关申请的交叉引用
[0002]本申请要求于
2022
年3月
18
日提交的专利技术名称为“用于两遍源代码转换的方法
、
设备和介质
(Methods,devices,and media for two
‑
pass source code transformation)”的第
17/698,661
号美国非临时申请的利益,该在先申请要求于
2021
年5月5日提交的第
63/184,602
号美国临时专利申请的优先权,上述在先申请的全部内容通过引用并入本文
。
[0003]本专利技术涉及用于源代码转换的方法
、
设备和介质,具体涉及用于两遍源代码转换的方法
、
设备和介质
。
技术介绍
[0004]数字计算机包括硬件
(
例如,处理器设备,如中央处理单元
(central processing unit
,
CPU)
和图形处理单元
(graphics processing unit
,
GPU)、
存储器和输入
/
输出
(input/output
,
IO)
设备
)
和软件的不同组件,它们相互作用以实现程序员指定的高级功能
。< ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.
一种用于处理呈第一编程语言的第一源代码库以生成呈第二编程语言的第二源代码库的方法,所述第一编程语言和所述第二编程语言是高级编程语言,所述方法包括:执行第一遍,所述第一遍包括:使用第一编程语言编译器来处理所述第一源代码库以生成抽象语法树
(AST)
;以及处理所述
AST
,以生成呈所述第二编程语言的第一遍源代码库;以及执行第二遍,所述第二遍包括:处理所述第一遍源代码库和所述第二编程语言的语法,以生成第一解析树;通过应用转换规则集合来处理所述解析树,以生成具有所述第二编程语言的一个或多个期望属性的第二解析树;以及使用第二遍反解析器处理所述第二解析树,以生成所述第二源代码库
。2.
根据权利要求1所述的方法,其中处理所述
AST
以生成所述第一遍源代码库包括:使用转换器来处理所述
AST
,以生成根据所述第二编程语言的所述第一源代码库的第二
AST
;以及使用
AST
反解析器来处理所述第二
AST
以生成所述第一遍源代码库
。3.
根据权利要求2所述的方法,其中所述转换器基于所述第一编程语言编译器和第二编程语言编译器而被生成
。4.
根据权利要求1至3中任一项所述的方法,其中处理所述第一源代码库以生成所述
AST
包括:使用编译器词法解析器来处理所述第一源代码库,以生成第一遍词法标记集合;使用编译器语法解析器来处理所述第一遍词法标记集合,以生成初步
AST
;以及使用编译器语义解析器来处理所述初步
AST
,以生成所述
AST。5.
根据权利要求1至4中任一项所述的方法,其中处理所述第一遍源代码库和所述第二编程语言的语法,以生成所述第一解析树包括:使用第二遍词法解析器来处理所述第一遍源代码库和所述第二编程语言的所述语法,以生成第二遍词法标记集合;以及使用第二遍语法解析器来处理所述第二遍词法标记集合和所述第二编程语言的所述语法,以生成所述第一解析树
。6.
根据权利要求1至5中任一项所述的方法,其中:所述第二解析树基于所述第一解析树和所述第二编程语言的所述语法而被生成;以及所述第二源代码库基于所述第二解析树和所述第二编程语言的所述语法而被生成
。7.
根据权利要求1至6中任一项所述的方法,还包括,在执行所述第二遍之后:执行所述第二遍的一个或多个附加迭代,每个迭代使用由先前迭代生成的所述第二源代码库来代替所述第一遍源代码库
。8.
根据权利要求5所述的方法,其中所述第二遍词法解析器
、
所述第二遍语法解析器
、
所述转换规则集合和所述第二遍反解析器使用所述
TXL
编程语言而被生成
。9.
根据权利要求1至8中任一项所述的方法,其中:所述第二编程语言是存储器安全编程语言;所述第二编程语言的所述一个或多个期望属性包括存储器安全;以及所述第二解析树被生成,使得所述第一解析树的一个或多个函数对应于所述第二解析
树的一个或多个存储器安全函数
。10.
根据权利要求9所述的方法,其中:所述第一编程语言是存储器不安全编程语言;以及通过应用转换规则集合来处理所述第一解析树,以生成具有所述第二编程语言的一个或多个期望属性的所述第二解析树,包括:标识所述第一解析树的一个或多个不安全参数或变量;确定所述第一解析树的所述一个或多个函数不依赖于所述一个或多个不安全参数或变量中的任何一个;以及针对所述第一解析树的所述一个或多个函数中的每个函数,生成所述第二解析树的对应的存储器安全函数
。11.
根据权利要求
10
所述的方法,其中:所述第一编程语言是
C
;所述第二编程语言是
Rust
;以及生成对应于所述第一解析树的不安全函数的所述第二解析树的存储器安全函数包括:生成所述存储器安全函数以省略所述存储器不安全函数的不安全关键字
。12.
一种设备,其中包括:处理器;以及存储器,存储指令,所述指令在由...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。