一种代码转换方法技术

技术编号:39852743 阅读:11 留言:0更新日期:2023-12-30 12:52
本发明专利技术涉及计算机技术领域,具体公开了一种代码转换方法

【技术实现步骤摘要】
一种代码转换方法、装置、计算机设备及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种代码转换方法

装置

计算机设备及存储介质


技术介绍

[0002]CPP(CPlus Plus)
是一门功能强大且广泛使用的编程语言,但是
CPP
语法复杂,对程序员的记忆有不小的负担,不仅难以理解,有时候也不符合人的认知习惯

为了防止编程出错,一些技术会以文档的形式限制程序员使用
CPP
的子集语法和功能,从而提醒用户用正确的规则编程,但是这些限制只存在于文档中,只能起到辅助提醒功能,编程难度依然很大,并不能真正防止程序员写出限制外的代码

基于此,有些实力强大

资金充足的公司为了降低编程难度且基于
CPP
开发应用,选择开发自己的程序语言

配套的编译器和开发工具,例如开发的相对易学的自定义编程语言,让用户容易记忆,从而降低编写出错的概率,然后将自己开发的自定义编程语言通过配套开发的编程工具和编译器转换为
CPP
,但是这些新开发的编译器和开发工具的质量有待验证,编译器还不够成熟,工业级别的软件无法接受用这些新语言开发,所以这种方案没有得到广泛推广,大部分应用开发场景还是需要用
CPP
语言和
CPP
编译器

基于此,在
CPP
编程领域依然存在编程复杂度大

编程效率低的问题


技术实现思路

[0003]有鉴于此,本专利技术提供了一种代码转换方法

装置

计算机设备及存储介质,以在可靠编译的条件下解决
CPP
编程难度大的问题

[0004]第一方面,本专利技术提供了一种代码转换方法,方法包括:创建文本文件,并通过文本文件接收代码文本;运行代码转换工具,代码转换工具包括文本转换规则,文本转换规则用于将符合目标语法的代码文本转换成符合
CPP
语法的
CPP
代码,目标语法是预配置的语法;通过代码转换工具将代码文本转换为
CPP
代码;调用
CPP
编译器,并通过
CPP
编译器对
CPP
代码进行编译,得到目标应用

[0005]根据上述技术手段,本专利技术实施例通过部署代码转换工具,然后在代码转换工具中配置了能够识别目标语法的文本转换规则,其中目标语法是预配置的符合程序员认知逻辑

理解简单

容易记忆的语法,用户可以根据自己平时的文本交流习惯来定义

之后,创建文本文件,当用户以目标语法按照文本形式输入代码文本到文本文件时,启动的代码转换工具会识别用户输入的代码文本,并以文本的形式逐行将用户输入的代码翻译成
CPP
代码,故代码转换工具只做文本上的翻译,而不执行编译工作,故得到的
CPP
代码还是指令,之后计算机通过调用原生
CPP
编译器对转换后的
CPP
代码进行编译,得到用于计算机运行的目标应用

通过这一方案,不仅使用户可以按照更加简单的文本使用习惯进行编程,还无需开发新的编译器,而是从文本层面对代码进行转换,最后代码编译的工作还是采用通用的
CPP
编译器实现,能够匹配各类
CPP
开发的通用场景,从而在可靠编译的条件下解决了
CPP
编程难
度大的问题,同时显著提高了编程效率

[0006]在一种可选地实施方式中,通过代码转换工具将代码文本转换为
CPP
代码,包括:通过代码转换工具监听目标目录中是否创建了文本文件;当创建了文本文件时,通过代码转换工具创建与目标文件关联的
CPP
文件;通过代码转换工具监听文本文件内输入的文本内容;当文本文件中输入了代码文本时,通过代码转换工具将代码文本同步翻译为
CPP
代码,并将
CPP
代码写入
CPP
文件中;展示
CPP
文件中的内容

[0007]根据上述技术手段,本专利技术实施例利用代码转换工具监听目标目录中是否创建了该格式的文本文件,如果监听到该事件则对应创建与之关联的
CPP
文件,当文本文件被程序员打开并输入代码文本时,代码转换工具会同步逐行翻译
CPP
代码到
CPP
文件中,从而展示
CPP
文件中的内容

以便于程序员在不确定自己输入的目标代码是否正确的情况下,可以对照查看翻译出的
CPP
代码,以确认自身输入代码的正确性,进一步提高了程序员编程的灵活性,并提高了程序员输入代码的可靠性

[0008]在一种可选地实施方式中,目标语法包括:禁用强制运算符,且目标语法中的类型转换语法表达式为:
[0009]expression

>type

[0010]式中,
expression
表示表达式,
type
表示变量类型;
[0011]通过代码转换工具将代码文本同步翻译为
CPP
代码,包括:识别代码文本中的类型转换语法结构;根据文本转换规则生成类型转换语法结构对应的第一
CPP
语法树;根据第一
CPP
语法树提取对应的表达式语法词和变量类型语法词,并将表达式语法词和变量类型语法词填入
CPP
语法中的
dynamic_cast
语句,得到
CPP
的类型转换代码

[0012]在一种可选地实施方式中,目标语法中的
lambda
表达式结构为:
[0013]{id_list

>stat_list}

[0014]式中,
id_list
表示参数列表,
stat_list
表示执行语句;
[0015]通过代码转换工具将代码文本同步翻译为
CPP
代码,包括:识别代码文本中的
lambda
表达式结构;根据文本转换规则生成
lambda
表达式结构对应的第二
CPP
语法树;判断
lambda
表达式结构中是否省略了参数列表;当参数列表省略时,读取第二
CPP
语法树中执行语句中的输入参数作为参数列表,以完善第二
CPP
语法树;根据第二
...

【技术保护点】

【技术特征摘要】
1.
一种代码转换方法,其特征在于,所述方法包括:创建文本文件,并通过所述文本文件接收代码文本;运行代码转换工具,所述代码转换工具包括文本转换规则,所述文本转换规则用于将符合目标语法的代码文本转换成符合
CPP
语法的
CPP
代码,所述目标语法是预配置的语法;通过所述代码转换工具将所述代码文本转换为
CPP
代码;调用
CPP
编译器,并通过所述
CPP
编译器对所述
CPP
代码进行编译,得到目标应用
。2.
根据权利要求1所述的方法,其特征在于,所述通过所述代码转换工具将所述代码文本转换为
CPP
代码,包括:通过所述代码转换工具监听目标目录中是否创建了所述文本文件;当创建了所述文本文件时,通过所述代码转换工具创建与所述目标文件关联的
CPP
文件;通过所述代码转换工具监听所述文本文件内输入的文本内容;当所述文本文件中输入了所述代码文本时,通过所述代码转换工具将所述代码文本同步翻译为所述
CPP
代码,并将所述
CPP
代码写入所述
CPP
文件中;展示所述
CPP
文件中的内容
。3.
根据权利要求2所述的方法,其特征在于,所述目标语法包括:禁用强制运算符,且目标语法中的类型转换语法表达式为:
expression

>type
;式中,
expression
表示表达式,
type
表示变量类型;所述通过所述代码转换工具将所述代码文本同步翻译为所述
CPP
代码,包括:识别所述代码文本中的所述类型转换语法结构;根据所述文本转换规则生成所述类型转换语法结构对应的第一
CPP
语法树;根据所述第一
CPP
语法树提取对应的表达式语法词和变量类型语法词,并将所述表达式语法词和所述变量类型语法词填入
CPP
语法中的
dynamic_cast
语句,得到
CPP
的类型转换代码
。4.
根据权利要求2所述的方法,其特征在于,所述目标语法中的
lambda
表达式结构为:
{id_list

>stat_list}
;式中,
id_list
表示参数列表,
stat_list
表示执行语句;所述通过所述代码转换工具将所述代码文本同步翻译为所述
CPP
代码,包括:识别所述代码文本中的
lambda
表达式结构;根据所述文本转换规则生成所述
lambda
表达式结构对应的第二
CPP
语法树;判断所述
lambda
表达式结构中是否省略了所述参数列表;当所述参数列表省略时,读取所述第二
CPP
语法树中执行语句中的输入参数作为所述参数列表,以完善所述第二
CPP
语法树;根据所述第二
CPP
语法树提取对应的参数列表语法词和执行语句语法词;将所述参数列表语法词和所述执行语句语法词填入
CPP
语法中复制捕获的
lambda
语句中,得到
CPP

lambda
表达式代码
。5.
根据权利要求2所述的方法,其特征在于,所述目标语法中的组合语句均在首尾写有大括号,所述目标语法中的条件语句结构为:
...

【专利技术属性】
技术研发人员:李小庆
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1