简化“算法到C代码”是软件业的一项挑战
扫描二维码
随时随地手机看文章
算法密集型电子和通信系统的设计需要大量算法和熟悉C/C++的人员。现在,从算法到C代码有望一键实现了。
不久前,数学计算软件的领先软件供应商MathWorks公司发布了MATLAB Coder。该公司称是一个全新平台,是过去十年专注努力的结晶,特点是可以直接从 MATLAB 算法到实现一键完成。
MathWorks中国教育业务发展总监陈炜博士解释道,传统上,算法密集型电子和通信系统的设计通常首先使用 MATLAB;MATLAB 算法最后需要转换为 C 代码,以集成到最终产品中。从 MATLAB 手动转换为 C 可能需要数天到数周的时间,有可能产生设计错误并造成投放市场的时间延迟。现在,设计工程师可以使用 MATLAB 加快开发任务(如定点设计和原型建立),然后使用 MATLAB Coder 自动生成 C 代码。
传统软件分工
MATLAB是矩阵实验室的缩写复合词,在MathWorks看来,所有算法都可以转化为矩阵,而MATLAB的目标是做算法易于开发的科学计算平台。现在的算法工程师或系统工程师可能是某个方面专家,例如信号处理、图像处理、通信处理以及其他算法密集型的开发应用。这些领域核心的工作需要一些创新或自己的IP(知识产权)。对于使用MATLAB的设计、系统和研发工程师/研究人员,当他们把新的构想和算法写出来后,真正实现需要硬件或软件工程师重新写C/C++代码来实现。
传统的从算法到C代码的流程如图1。左侧是某一领域的专家,有新的想法后,例如想开发新的雷达系统(算法),或新一代的手机(不仅有蓝牙、WiFi和3G等,还要完成多任务处理等),在概念设计阶段最重要的任务是算法/想法是可以实现的。MATLAB可以快速地实现算法,因为优势是一种算法平台,无需专门针对某种硬件和考虑细节,例如数据类型、内存管理等(这些是C代码开发的人实现的),只需要考虑概念能否实现。用MATLAB写完程序,验证合格后,再由软硬件工程师手动地、重新基于这些算法,改写成C/C++代码。
简化“算法到C代码”是软件业的一项挑战.pdf