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