簡化“算法到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++代碼。
評論