[發明專利]一種面向數據流模型的高階調用代碼生成方法及裝置在審
| 申請號: | 202011496767.X | 申請日: | 2020-12-17 |
| 公開(公告)號: | CN112506521A | 公開(公告)日: | 2021-03-16 |
| 發明(設計)人: | 王政;黃麗桃;江云松;張小龍;畢旭輝;史涇位 | 申請(專利權)人: | 北京軒宇信息技術有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 陳鵬 |
| 地址: | 100190 北京市海淀區科學院*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 數據流 模型 調用 代碼 生成 方法 裝置 | ||
本發明公開了一種面向數據流模型的高階調用代碼生成方法及裝置。方法包括:對數據流中的計算模塊進行解析,得到計算模塊的解析結果;根據解析結果,確定計算模塊是否為子模塊調用模塊;在計算模塊為子模塊調用模塊,或計算模塊為非子模塊調用模塊且計算模塊為矩陣函數運算模塊的情況下,確定計算模塊對應的數組維度與預先設定的最大展開次數之間的大小關系;在數組維度大于最大展開次數的情況下,基于循環調用的方式進行函數調用,生成所述計算模塊對應的高階調用代碼;在所述數組維度小于所述最大展開次數的情況下,根據所述數組維度展開調用函數,生成所述計算模塊對應的高階調用代碼。本發明可以簡化生成的代碼,生成符合用戶查看的簡潔代碼。
技術領域
本發明涉及基于模型的代碼生成技術領域,特別是一種面向數據流模型的高階調用代碼生成方法及裝置。
背景技術
建立模型時,常用的模塊調用情況是實參與形參類型匹配。當實參與形參類型不匹配時,如果實參比形參的階數更高,且符合高階展開為低階的要求時,仍然是合法的模型模塊調用,其定義如下:
設被調模塊的類型為:Tn←m(T1,T2,...,Tn-1)
其中,表示返回值的類型,T1,T2,...,Tn表示參數的類型。
設調用表達式為:r=m(e1,e2,...,en-1)
r及e1,e2,...,en-1的類型分別是:Sn,S1,S2,...,Sn-1。
下列關系成立:
則認為這是一個類型合法的模塊調用。
其中:Ti=Si表示類型相同,Ti=deorder(Si,j)表示降階之后,類型相同
設T=int[3][4],則deorder(T,1)=int[4],deorder(T,2)=int。
即對于二維數組,允許進行兩次降階操作,分別得到一維數組、標量。
此種調用方式下生成代碼,包括兩種方式。方式一生成的代碼中,逐次根據實參的每個具體值來進行函數調用,此方法生成的代碼,在實參的維度較小時,生成的函數調用代碼比較簡潔且可讀性好,若實參維度較大時,生成的函數調用代碼會很多,從而造成可讀性差;方式二生成的代碼中,根據實參比形參的維度差,采用循環調用的方式,進行函數調用,此方法生成的代碼在實參維度小時,生成代碼時間復雜度和空間復雜度高于方式一生成的代碼方式。
發明內容
本發明解決的技術問題是:克服現有技術的不足,提供了一種面向數據流模型的高階調用代碼生成方法及裝置。
為了解決上述技術問題,本發明實施例提供了一種面向數據流模型的高階調用代碼生成方法,包括:
對數據流中的計算模塊進行解析,得到所述計算模塊的解析結果;
根據所述解析結果,確定所述計算模塊是否為子模塊調用模塊;
在所述計算模塊為子模塊調用模塊,或所述計算模塊為非子模塊調用模塊且所述計算模塊為矩陣函數運算模塊的情況下,確定所述計算模塊對應的數組維度與預先設定的最大展開次數之間的大小關系;
在所述數組維度大于所述最大展開次數的情況下,基于循環調用的方式進行函數調用,生成所述計算模塊對應的高階調用代碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京軒宇信息技術有限公司,未經北京軒宇信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011496767.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種埋設犁及其工作方法
- 下一篇:一種尾退分離試驗模型初始位置測量裝置





