[發明專利]移植方法及源到源編譯器有效
| 申請號: | 201310632199.5 | 申請日: | 2013-11-29 |
| 公開(公告)號: | CN103631632B | 公開(公告)日: | 2017-08-04 |
| 發明(設計)人: | 曾建江;卓玉樟;胡海亮 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45;G06F9/44 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙)44285 | 代理人: | 唐華明 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 移植 方法 源到源 編譯器 | ||
技術領域
本發明涉及計算機技術領域,更具體地說,涉及移植方法及源到源編譯器。
背景技術
在DSP(Digital Signal Processing)平臺、CPU、GPU(Graphic Processing Unit)升級換代(將DSP平臺、CPU、GPU統稱為平臺)時,原平臺中的應用程序經常需要進行對應的移植,以令其可在升級換代后的平臺(可稱為目標平臺)上應用。原平臺與目標平臺可能為不同平臺,也即程序移植存在跨平臺移植的需求。所謂的不同平臺,是指芯片架構(比如指令,數據類型定義等)有差異的平臺。
上述應用程序是程序源代碼經過編譯后得到的二進制可執行文件(exe文件)。為追求性能最優,應用程序中的算法程序源代碼往往與平臺芯片架構強相關,因此,應用程序的移植的核心是將適用于原平臺的算法源代碼轉換成適用于目標平臺的算法源代碼,也即進行源到源轉換。
現有的源到源編輯器,可實現單線程代碼到多線程代碼的轉換,以及不同語言源代碼間的轉換。但現有的源到源編輯器所進行的源到源轉換,是業務邏輯上的轉換,并不涉及平臺相關的基本運算的轉換,因此,其只適應于同平臺的轉換,不能跨平臺運用,也即,其不能實現跨平臺源到源轉換,進而不能實現應用程序跨平臺移植。
發明內容
有鑒于此,本發明實施例的目的在于提供移植方法及源到源編譯器,以解決現有技術不能實現應用程序跨平臺移植的問題。
為實現上述目的,本發明實施例提供如下技術方案:
根據本發明實施例的第一方面,提供一種應用程序跨平臺移植方法,包括:
接收與平臺芯片架構無關、針對所述應用程序編寫的、采用通用運算符和通用數據類型的通用平臺算法源代碼;
對所述通用平臺算法源代碼中的通用運算符及通用數據類型進行轉換,得到符合目標平臺運算要求及數據類型要求的目標平臺算法源代碼;
發送所述目標平臺算法源代碼至目標平臺編譯器,以便所述目標平臺編譯器對所述目標平臺算法源代碼進行編譯,得到可運行在目標平臺上的應用程序。
結合第一方面,在第一種可能的實現方式中,所述對通用平臺算法源代碼中的通用運算符及通用數據類型進行轉換,得到符合目標平臺運算要求及數據類型要求的目標平臺算法源代碼,具體包括:
解析所述通用平臺算法源代碼,得到抽象語法樹;其中,所述抽象語法樹包括通用運算節點;
對所述抽象語法樹中的通用運算節點進行替換處理和優化處理,得到符合目標平臺運算要求及數據類型要求的語法樹;
反解析所述符合目標平臺運算要求及數據類型要求的語法樹,得到所述目標平臺算法源代碼。
結合第一方面的第一種可能的實現方式,在第二種可能的實現方式中,所述解析所述通用平臺算法源代碼,得到抽象語法樹包括:
對所述通用平臺算法源代碼進行詞法分析,得到記號流;
對所述記號流進行語法分析,構成第一語法樹;
對所述第一語法樹進行語義分析,得到經語義分析處理后的抽象語法樹。
結合第一方面的第一種或第二種可能的實現方式,在第三種可能的實現方式中,所述替換處理包括:
令所述抽象語法樹中的每一通用運算節點和通用運算庫模板進行匹配,當滿足預設匹配條件時,匹配成功;
利用匹配成功的通用運算庫模板中的內容,替換與之相匹配的通用運算節點的內容,得到第二語法樹;
所述優化處理包括:對所述第二語法樹進行合并相同循環的節點、消除冗余節點和向量化中的至少一種,得到所述符合目標平臺運算要求及數據類型要求的語法樹。
結合第一方面的第一種至第三種可能的實現方式中任一種可能的實現方式,在第四種可能的實現方式中,所述通用運算節點包括通用運算符節點和操作數節點;
所述通用運算庫模板包括通用運算模板和通用數據類型模板;
所述通用運算模板的內容包含,適用于所述目標平臺并可實現通用運算的運算代碼;所述通用數據類型模板的內容包含,適用于所述目標平臺、并與通用數據類型相對應的數據類型的定義或解釋。
結合第一方面的第四種可能的實現方式,在第五種可能的實現方式中,當令通用運算符節點與通用運算模板進行匹配時,所述預設匹配條件包括,通用運算符節點包含的通用運算符,與通用運算模板所實現的通用運算相一致,并且,通用運算符節點的關聯節點之間符合依賴關系;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310632199.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:簡易自動加熱飯盒裝置
- 下一篇:一種升降托件機構





