簡化“算法到C代碼”是軟件業(yè)的一項(xiàng)挑戰(zhàn)
算法密集型電子和通信系統(tǒng)的設(shè)計(jì)需要大量算法和熟悉C/C++的人員?,F(xiàn)在,從算法到C代碼有望一鍵實(shí)現(xiàn)了。
不久前,數(shù)學(xué)計(jì)算軟件的領(lǐng)先軟件供應(yīng)商MathWorks公司發(fā)布了MATLAB Coder。該公司稱是一個(gè)全新平臺,是過去十年專注努力的結(jié)晶,特點(diǎn)是可以直接從 MATLAB 算法到實(shí)現(xiàn)一鍵完成。
MathWorks中國教育業(yè)務(wù)發(fā)展總監(jiān)陳煒博士解釋道,傳統(tǒng)上,算法密集型電子和通信系統(tǒng)的設(shè)計(jì)通常首先使用 MATLAB;MATLAB 算法最后需要轉(zhuǎn)換為 C 代碼,以集成到最終產(chǎn)品中。從 MATLAB 手動轉(zhuǎn)換為 C 可能需要數(shù)天到數(shù)周的時(shí)間,有可能產(chǎn)生設(shè)計(jì)錯(cuò)誤并造成投放市場的時(shí)間延遲?,F(xiàn)在,設(shè)計(jì)工程師可以使用 MATLAB 加快開發(fā)任務(wù)(如定點(diǎn)設(shè)計(jì)和原型建立),然后使用 MATLAB Coder 自動生成 C 代碼。
傳統(tǒng)軟件分工
MATLAB是矩陣實(shí)驗(yàn)室的縮寫復(fù)合詞,在MathWorks看來,所有算法都可以轉(zhuǎn)化為矩陣,而MATLAB的目標(biāo)是做算法易于開發(fā)的科學(xué)計(jì)算平臺?,F(xiàn)在的算法工程師或系統(tǒng)工程師可能是某個(gè)方面專家,例如信號處理、圖像處理、通信處理以及其他算法密集型的開發(fā)應(yīng)用。這些領(lǐng)域核心的工作需要一些創(chuàng)新或自己的IP(知識產(chǎn)權(quán))。對于使用MATLAB的設(shè)計(jì)、系統(tǒng)和研發(fā)工程師/研究人員,當(dāng)他們把新的構(gòu)想和算法寫出來后,真正實(shí)現(xiàn)需要硬件或軟件工程師重新寫C/C++代碼來實(shí)現(xiàn)。
傳統(tǒng)的從算法到C代碼的流程如圖1。左側(cè)是某一領(lǐng)域的專家,有新的想法后,例如想開發(fā)新的雷達(dá)系統(tǒng)(算法),或新一代的手機(jī)(不僅有藍(lán)牙、WiFi和3G等,還要完成多任務(wù)處理等),在概念設(shè)計(jì)階段最重要的任務(wù)是算法/想法是可以實(shí)現(xiàn)的。MATLAB可以快速地實(shí)現(xiàn)算法,因?yàn)閮?yōu)勢是一種算法平臺,無需專門針對某種硬件和考慮細(xì)節(jié),例如數(shù)據(jù)類型、內(nèi)存管理等(這些是C代碼開發(fā)的人實(shí)現(xiàn)的),只需要考慮概念能否實(shí)現(xiàn)。用MATLAB寫完程序,驗(yàn)證合格后,再由軟硬件工程師手動地、重新基于這些算法,改寫成C/C++代碼。
評論