[发明专利]一种基于MATLAB的C/C++程序生成辅助方法有效
申请号: | 201410830514.X | 申请日: | 2014-12-26 |
公开(公告)号: | CN104461569B | 公开(公告)日: | 2018-02-27 |
发明(设计)人: | 徐青山;王煜奇;林章岁;李喜兰 | 申请(专利权)人: | 东南大学;国网福建省电力有限公司经济技术研究院 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 江苏永衡昭辉律师事务所32250 | 代理人: | 王斌 |
地址: | 210096*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 matlab c++ 程序 生成 辅助 方法 | ||
技术领域
本发明涉及工程软件开发应用领域,具体是一种基于MATLAB的C/C++程序自动生成辅助技术。
背景技术
随着计算机技术水平的发展,当今计算机已成为科学工程领域最基本、最必不可少的工具。在工程实际当中,计算机的实用率越来越高,再加上各个工程环节朝着自动化、智能化的方向发展,各领域对性能强大的专业工程软件平台有着强烈的开发需求。为了实现跨平台高效运行,与工程实际接轨,C/C++语言无疑是首选的开发语言。作为一门非常基础的计算机语言,C/C++运行效率高,可以很方便地在windows、linux、unix、osx等操作系统上运行,但C/C++语言中,要实现工程当中常用矩阵运算、数学运算、优化计算十分复杂,而且调试难度高,编程工作量大。MATLAB可以很好地弥补C/C++的这些缺点,但却不具备运行效率高,跨平台方便等优点。如果,能将MATLAB中编写转换的函数直接转换为C/C++函数,将为工程软件的开发节省大量的时间和精力。从2011年起,MATLAB中的MATLAB Coder工具包开始支持将MATLAB函数,自动生成为C/C++函数。但由于技术的限制,为得到可以自动生成C/C++函数的MATLAB程序,需要进行大量的变量类型定义和修改,工作非常琐碎;MATLAB当中的一些数据结构、算法、编程方式,不支持自动生成;生成的C/C++语言可能会在无提示的情况下,产生错误程序,这些错误很难发现;MATLAB与生成的C/C++函数在多维数组下标的处理上,采用不同的机制,原有参数数据,无法直接使用;所生成的C/C++函数,若想与已有程序对接,需要进行一系列繁琐的处理工作,和代码编写工作,并调用复杂的结构型变量初始化函数进行大量的初始化工作。为了更高效地利用MATLAB Coder工具包,亟需开发一组配套辅助技术,来解决上述问题了困难。
发明内容
发明目的:
本发明为简化MATLAB Coder代码生成应用工作,提出基于MATLAB的C/C++程序自动生成方法的一种辅助技术,将为使用MATLAB Coder所作的代码改写和处理工作大幅简化,可以满足工程软件开发的需求。
技术方案:
本发明提出一种基于MATLAB的C/C++程序生成辅助方法,包括如下步骤:
1)建立可用于C/C++代码生成的MATLAB程序的规范化语言检索机制,并基于该机制开发一种文本分析器,用于分析MATLAB代码,检索出不规范语言;
2)对常用的、不支持自动生成C/C++代码的MATLAB语言、数据结构进行改写;
3)利用以变量类型和变量运行路径为主线、追踪函数转换限制的程序编写流程生成C/C++代码;
4)对由MATLAB生成的C/C++函数及相关的无穷大数据处理函数、变长度数据处理函数按剥离—共用方法进行整合,给出这些函数与C/C++功能平台的衔接标准化代码模板;
5)对由MATLAB生成的多个C/C++函数在同一目录下运行时的冲突变量、函数,通过分离无穷大数据处理函数、变长度数据处理函数,指定公共调用路径,调用相同功能部分,实现优化运行;
6)对生成的C/C++代码进行配置和测试,如果测试结果不正确,文本分析器针对各类运行出错情况给出对应错误提示和MATLAB代码修改方法,实现问题代码段的快速定位并修正;
7)重复步骤6),直到测试结果正确。
本发明能够使得编写的MATLAB函数快速符合代码生成的标准,自动生成正确的可读、可编辑的C/C++语言代码,大幅简化C/C++代码的加工改写工作,当多个生成函数并存时,有效解决了变量、函数名冲突问题,实现了优化管理。在工程应用中,能够大幅提高程序运行率,简化C/C++语言的开发与调试工作,有极大的应用价值。
具体实施方式
本发明的基于MATLAB的C/C++程序自动生成辅助方法,包括如下步骤:
1)建立可用于C/C++代码生成的MATLAB程序的规范化语言检索机制,并基于该机制开发一种文本分析器,用于分析MATLAB代码,检索出不规范语言。
通过研究MATLAB代码生成原则和限制,得到MATLAB程序的规范化语言检索机制,该机制归纳出了各类需修改的不规范语言的常用修改方法和错误提示,给出了不支持函数的典型特征,用该方法可以迅速检索出潜在的不规范语言。
产生错误提示的典型不规范语言的修改方法有:
i.对于一个长度动态增加数组,若要生成C/C++代码,需要在使用该变量之前按照变量的长度进行初始化,例如:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学;国网福建省电力有限公司经济技术研究院,未经东南大学;国网福建省电力有限公司经济技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410830514.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息处理方法和电子设备
- 下一篇:条码属性的解析方法及解析装置