[发明专利]ST语言到C语言的代码转换方法和装置在审
申请号: | 202310097704.4 | 申请日: | 2023-02-08 |
公开(公告)号: | CN116301873A | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 刘渊;蔡礼塬;黄滔;龚定飞;沈璐璐 | 申请(专利权)人: | 中国船舶集团有限公司第七一一研究所 |
主分类号: | G06F8/40 | 分类号: | G06F8/40 |
代理公司: | 深圳紫藤知识产权代理有限公司 44570 | 代理人: | 黄威 |
地址: | 201108 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | st 语言 代码 转换 方法 装置 | ||
本发明提供一种ST语言到C语言的代码转换方法和装置,所述方法包括获取第一ST语言代码;将所述第一ST语言代码进行格式化处理后以得到第二ST语言代码,其中所述格式化处理是指根据所述第一ST语言代码中的字符是否与至少一个预设字符存在粘连以确定是否需要添加空格字符;遍历所述第二ST语言代码的待转换字符串,并根据所述待转换字符串的类型进行代码转换以得到C语言代码。本发明通过对ST语言代码先进行格式化处理再进行代码转换以得到C语言代码,解决了ST语言到C语言的代码转换问题。
技术领域
本发明涉及计算机编译技术领域,尤其涉及一种ST语言到C语言的代码转换方法和装置。
背景技术
结构化文本/结构式文件编程语言(Structured text)也称为ST语言,是为可编程逻辑控制器(PLC)设计的编程语言。PLC语言的编译与所使用的硬件架构严格绑定,但当PLC硬件变更改型时,软件开发对应的编程语言及硬件平台的需求也将发生转变,考虑到编程语言与对应所使用的硬件存在紧密的耦合关系,故当涉及到代码的复用替换时,需要将PLC编程语言(一种结构化文本语言,Structured Text,简称ST)替换为现有需要的编程语言(例如C语言)。
若此时选择对需求软件重新编译开发,则所承受的风险较大,且开发周期较长,大大降低了工程师的研发效率,并且软件可靠性也可能得不到保证。由此,有必要提供一种计算机编译工具,能够实现将用ST语言编写的代码转换为用C语言编写的代码。
发明内容
本发明提供一种ST语言到C语言的代码转换方法和装置,用以解决现有技术中ST语言到C语言的代码转换问题。
第一方面,本发明提供一种ST语言到C语言的代码转换方法,所述方法包括:
获取第一ST语言代码;
将所述第一ST语言代码进行格式化处理后以得到第二ST语言代码,其中所述格式化处理是指根据所述第一ST语言代码中的字符是否与至少一个预设字符存在粘连以确定是否需要添加空格字符;
遍历所述第二ST语言代码的待转换字符串,并根据所述待转换字符串的类型进行代码转换以得到C语言代码。
在本发明一实施例中,所述获取第一ST语言代码的步骤包括:
获取待转换的ST语言代码文本的存储目录,所述ST语言代码文本用于保存所述第一ST语言代码;
创建与所述ST语言代码文本对应的C语言代码文本;
将所述ST语言代码文本中的第一ST语言代码按行存放在预设数组。
在本发明一实施例中,所述至少一个预设字符包括第一预设字符和第二预设字符,所述将所述第一ST语言代码进行格式化处理后以得到第二ST语言代码的步骤包括:
遍历所述预设数组并判断是否有字符与所述第一预设字符存在粘连;
若存在粘连,则在该字符后面添加空格字符以执行粘连处理;
若不存在粘连或执行粘连处理完毕,则继续判断是否有字符与所述第二预设字符存在粘连,并在判断出该字符与所述第二预设字符存在粘连时,在该字符后面添加空格字符;
遍历完毕后,输出格式化处理后的所述第二ST语言代码;
其中,所述第一预设字符为“:=”,所述第二预设字符为“:”。
在本发明一实施例中,所述根据所述待转换字符串的类型进行代码转换以得到C语言代码的步骤包括:
若所述待转换字符串的类型为赋值语句时,将字符“:=”转换为字符“=”;
若所述待转换字符串的类型为注释语句时,将字符“(”或“)”转换为字符“/”;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶集团有限公司第七一一研究所,未经中国船舶集团有限公司第七一一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310097704.4/2.html,转载请声明来源钻瓜专利网。