[發(fā)明專利]一種量子程序的編譯方法及裝置在審
| 申請?zhí)枺?/td> | 202010545894.8 | 申請日: | 2020-06-16 |
| 公開(公告)號: | CN111767055A | 公開(公告)日: | 2020-10-13 |
| 發(fā)明(設(shè)計)人: | 方圓;陳博穎 | 申請(專利權(quán))人: | 合肥本源量子計算科技有限責(zé)任公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N10/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 230088 安徽省合肥市合肥市高*** | 國省代碼: | 安徽;34 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 量子 程序 編譯 方法 裝置 | ||
1.一種量子程序的編譯方法,其特征在于,所述方法包括:
獲得量子程序的源代碼;其中,所述源代碼的邏輯結(jié)構(gòu)至少包括:循環(huán)結(jié)構(gòu);
對所述源代碼進(jìn)行詞法分析,得到多個語法單元token;
對所述token進(jìn)行語法分析,構(gòu)建句法樹;
基于所述句法樹對所述源代碼進(jìn)行語義分析,確定所述源代碼變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,其中,所述類型至少包括輔助類型和經(jīng)典類型;
根據(jù)所述變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,將所述源代碼編譯為特定形式的中間代碼,其中,所述中間代碼的邏輯結(jié)構(gòu)不包括:循環(huán)結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述源代碼進(jìn)行詞法分析,得到多個語法單元token,包括:
對所述源代碼進(jìn)行詞法分析,得到多個語法單元token,同時將對應(yīng)信息寫入符號表,其中,所述符號表的屬性至少包括:名稱name、類型type、值value以及作用域scope,所述源代碼的對應(yīng)信息與所述符號表的屬性相對應(yīng)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對所述token進(jìn)行語法分析,構(gòu)建句法樹,包括:
根據(jù)所述token構(gòu)建句法樹,按照源代碼語言的語法規(guī)則,識別并檢查所述句法樹的語法,同時更新所述符號表。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對所述源代碼進(jìn)行詞法分析,得到多個語法單元token,包括:
確定有窮自動機(jī)DFA,對所述源代碼進(jìn)行掃描,按照所述源代碼語言的詞法規(guī)則識別各類單詞,產(chǎn)生相應(yīng)單詞的屬性字,其中,所述單詞包括關(guān)鍵字、標(biāo)識符、常數(shù)、運(yùn)算符和界符,所述屬性字表示指向符號表中詞法單元的條目;
根據(jù)所述單詞及其屬性得到語法單元token。
5.根據(jù)權(quán)利要求3所述的量子程序的編譯方法,其特征在于,所述基于所述句法樹對所述源代碼進(jìn)行語義分析,確定所述源代碼變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,包括:
利用所述句法樹和所述符號表檢查所述源代碼語言定義的語義,并收集所述句法樹和所述符號表的信息;
通過查詢所述符號表,確定所述源代碼變量、表達(dá)式、函數(shù)分別對應(yīng)的類型。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述源代碼的邏輯結(jié)構(gòu)還包括分支結(jié)構(gòu);
所述根據(jù)所述變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,將所述源代碼編譯為特定形式的中間代碼,具體包括:
解析所述句法樹,根據(jù)所述符號表的信息,判斷當(dāng)前解析對象的類型并進(jìn)行類型檢查;其中,所述解析對象包括變量、表達(dá)式和函數(shù);
當(dāng)所述解析對象的類型為輔助類型時,則對相應(yīng)的編譯對象進(jìn)行第一編譯操作,以消除相應(yīng)的分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu);
當(dāng)所述解析對象的類型為經(jīng)典類型時,則對相應(yīng)的編譯對象進(jìn)行第二編譯操作,以消除相應(yīng)的循環(huán)結(jié)構(gòu),可保留或不保留相應(yīng)的分支結(jié)構(gòu);
最終得到所述源代碼對應(yīng)的特定形式的中間代碼。
7.一種量子程序的編譯裝置,其特征在于,所述裝置包括:
獲得模塊,用于獲得量子程序的源代碼;其中,所述源代碼的邏輯結(jié)構(gòu)至少包括:循環(huán)結(jié)構(gòu);
詞法分析模塊,用于對所述源代碼進(jìn)行詞法分析,得到多個語法單元token;
構(gòu)建模塊,用于對所述token進(jìn)行語法分析,構(gòu)建句法樹;
語義分析模塊,用于基于所述句法樹對所述源代碼進(jìn)行語義分析,確定所述源代碼變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,其中,所述類型至少包括輔助類型和經(jīng)典類型;
編譯模塊,用于根據(jù)所述變量、表達(dá)式、函數(shù)分別對應(yīng)的類型,將所述源代碼編譯為特定形式的中間代碼,其中,所述中間代碼的邏輯結(jié)構(gòu)不包括:循環(huán)結(jié)構(gòu)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述詞法分析模塊,包括:
寫入模塊,用于對所述源代碼進(jìn)行詞法分析,得到多個語法單元token,同時將對應(yīng)信息寫入符號表,其中,所述符號表的屬性至少包括:名稱name、類型type、值value以及作用域scope,所述源代碼的對應(yīng)信息與所述符號表的屬性相對應(yīng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于合肥本源量子計算科技有限責(zé)任公司,未經(jīng)合肥本源量子計算科技有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010545894.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





