[發(fā)明專利]目標(biāo)語(yǔ)法樹(shù)的生成方法以及相關(guān)設(shè)備在審
| 申請(qǐng)?zhí)枺?/td> | 201911194471.X | 申請(qǐng)日: | 2019-11-28 |
| 公開(kāi)(公告)號(hào): | CN112860233A | 公開(kāi)(公告)日: | 2021-05-28 |
| 發(fā)明(設(shè)計(jì))人: | 劉志 | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號(hào): | G06F8/30 | 分類號(hào): | G06F8/30;G06F8/41 |
| 代理公司: | 廣州三環(huán)專利商標(biāo)代理有限公司 44202 | 代理人: | 郝傳鑫;熊永強(qiáng) |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 目標(biāo) 語(yǔ)法 生成 方法 以及 相關(guān) 設(shè)備 | ||
本申請(qǐng)?zhí)峁┝艘环N目標(biāo)語(yǔ)法樹(shù)的生成方法以及相關(guān)設(shè)備。所述方法,包括:通用語(yǔ)法分析器將輸入的語(yǔ)句進(jìn)行詞法分析,從而得到語(yǔ)言單元鏈,其中,所述語(yǔ)言單元鏈包括多個(gè)語(yǔ)言單元;將所述多個(gè)語(yǔ)言單元和所述語(yǔ)法規(guī)則樹(shù)進(jìn)行匹配,從而生成語(yǔ)法分析棧,其中,所述語(yǔ)法規(guī)則樹(shù)采用樹(shù)的形式來(lái)表示語(yǔ)法規(guī)則,所述語(yǔ)法規(guī)則描述了所述語(yǔ)言單元鏈組合起來(lái)的規(guī)則;結(jié)合反射技術(shù)對(duì)所述語(yǔ)法分析棧進(jìn)行歸約,從而得到目標(biāo)語(yǔ)法樹(shù)。上述方法能夠有效降低了開(kāi)發(fā)和維護(hù)的復(fù)雜度。
技術(shù)領(lǐng)域
本申請(qǐng)涉及編譯領(lǐng)域,尤其涉及一種目標(biāo)語(yǔ)法樹(shù)的生成方法以及相關(guān)設(shè)備。
背景技術(shù)
編譯程序把一個(gè)源程序翻譯成目標(biāo)程序的工作過(guò)程分為五個(gè)階段:詞法分析;語(yǔ)法分析;語(yǔ)義檢查和中間代碼生成;代碼優(yōu)化;目標(biāo)代碼生成。主要是進(jìn)行詞法分析和語(yǔ)法分析,又稱為源程序分析,分析過(guò)程中發(fā)現(xiàn)有語(yǔ)法錯(cuò)誤,給出提示信息。
但是,研發(fā)人員在長(zhǎng)期研究下發(fā)現(xiàn),編譯工作的開(kāi)發(fā)和維護(hù)的復(fù)雜度非常高。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本申請(qǐng)?zhí)峁┝艘环N目標(biāo)語(yǔ)法樹(shù)的生成方法以及相關(guān)設(shè)備,能夠有效降低了開(kāi)發(fā)和維護(hù)的復(fù)雜度。
第一方面,提供了一種目標(biāo)語(yǔ)法樹(shù)的生成方法,包括:
通用語(yǔ)法分析器將輸入的語(yǔ)句進(jìn)行詞法分析,從而得到語(yǔ)言單元鏈,其中,所述語(yǔ)言單元鏈包括多個(gè)語(yǔ)言單元;
將所述語(yǔ)言單元鏈和所述語(yǔ)法規(guī)則樹(shù)進(jìn)行匹配,從而生成語(yǔ)法分析棧,其中,所述語(yǔ)法規(guī)則樹(shù)采用樹(shù)的形式來(lái)表示語(yǔ)法規(guī)則,所述語(yǔ)法規(guī)則描述了所述語(yǔ)言單元鏈組合起來(lái)的規(guī)則;
結(jié)合反射技術(shù)對(duì)所述語(yǔ)法分析棧進(jìn)行歸約,從而得到目標(biāo)語(yǔ)法樹(shù)。
上述方案利用語(yǔ)法規(guī)則樹(shù)和編程語(yǔ)言的反射技術(shù),直接將輸入的語(yǔ)句轉(zhuǎn)換成了目標(biāo)語(yǔ)法樹(shù)。與先將輸入的語(yǔ)句轉(zhuǎn)為抽象語(yǔ)法樹(shù),然后,再將抽象語(yǔ)法樹(shù)轉(zhuǎn)換為目標(biāo)語(yǔ)法樹(shù)相比,無(wú)需生成抽象語(yǔ)法樹(shù),因而能夠有效降低了開(kāi)發(fā)和維護(hù)的復(fù)雜度。
在一些可能的設(shè)計(jì)中,將所述語(yǔ)言單元鏈和所述語(yǔ)法規(guī)則樹(shù)進(jìn)行匹配,從而生成語(yǔ)法分析棧之前,所述方法還包括:
根據(jù)目標(biāo)語(yǔ)法樹(shù)對(duì)象模型生成語(yǔ)法規(guī)則樹(shù),其中,所述目標(biāo)語(yǔ)法樹(shù)對(duì)象模型是目標(biāo)語(yǔ)法樹(shù)具有的共同特征的抽象。
上述方案中,通用語(yǔ)法分析器自動(dòng)根據(jù)目標(biāo)語(yǔ)法樹(shù)對(duì)象模型生成語(yǔ)法規(guī)則樹(shù),與原來(lái)的方案中研發(fā)人員需要提供語(yǔ)法文件以及目標(biāo)語(yǔ)法樹(shù)模型以及語(yǔ)法樹(shù)轉(zhuǎn)換邏輯相比,只要提供目標(biāo)語(yǔ)法樹(shù)對(duì)象模型即可,有效減少了開(kāi)發(fā)和維護(hù)的復(fù)雜度,而且,通用語(yǔ)法分析器自動(dòng)根據(jù)目標(biāo)語(yǔ)法樹(shù)對(duì)象模型生成語(yǔ)法規(guī)則樹(shù)能夠使得目標(biāo)語(yǔ)法樹(shù)對(duì)象模型和語(yǔ)法規(guī)則樹(shù)是一致的,相關(guān)的,因此,不存在要確保語(yǔ)法文件、目標(biāo)語(yǔ)法樹(shù)對(duì)象模型以及語(yǔ)法樹(shù)轉(zhuǎn)換邏輯三者一致的問(wèn)題,進(jìn)一步降低了開(kāi)發(fā)和維護(hù)的復(fù)雜度。
在一些可能的設(shè)計(jì)中,所述目標(biāo)語(yǔ)法樹(shù)對(duì)象模型是使用具備結(jié)構(gòu)化描述的能力,以及反射構(gòu)造對(duì)象的能力的編程語(yǔ)言編寫(xiě)的。
在一些可能的設(shè)計(jì)中,所述編程語(yǔ)言包括Java、C++、C#、Python中的一種或者多種。
在一些可能的設(shè)計(jì)中,所述通用語(yǔ)法分析器為結(jié)構(gòu)化查詢語(yǔ)言SQL解析器。
第二方面,提供了一種通用語(yǔ)法分析器,包括:詞法分析器以及語(yǔ)法分析器,
所述詞法分析器用于將輸入的語(yǔ)句進(jìn)行詞法分析,從而得到語(yǔ)言單元鏈,其中,所述語(yǔ)言單元鏈包括多個(gè)語(yǔ)言單元;
所述語(yǔ)法分析器用于將所述語(yǔ)言單元鏈和所述語(yǔ)法規(guī)則樹(shù)進(jìn)行匹配,從而生成語(yǔ)法分析棧,其中,所述語(yǔ)法規(guī)則樹(shù)用于采用樹(shù)的形式來(lái)表示語(yǔ)法規(guī)則,所述語(yǔ)法規(guī)則描述了所述語(yǔ)言單元鏈組合起來(lái)的規(guī)則;
所述語(yǔ)法分析器用于結(jié)合反射技術(shù)對(duì)所述語(yǔ)法分析棧進(jìn)行歸約,從而得到目標(biāo)語(yǔ)法樹(shù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911194471.X/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 目標(biāo)檢測(cè)裝置、學(xué)習(xí)裝置、目標(biāo)檢測(cè)系統(tǒng)及目標(biāo)檢測(cè)方法
- 目標(biāo)監(jiān)測(cè)方法、目標(biāo)監(jiān)測(cè)裝置以及目標(biāo)監(jiān)測(cè)程序
- 目標(biāo)監(jiān)控系統(tǒng)及目標(biāo)監(jiān)控方法
- 目標(biāo)跟蹤方法和目標(biāo)跟蹤設(shè)備
- 目標(biāo)跟蹤方法和目標(biāo)跟蹤裝置
- 目標(biāo)檢測(cè)方法和目標(biāo)檢測(cè)裝置
- 目標(biāo)跟蹤方法、目標(biāo)跟蹤裝置、目標(biāo)跟蹤設(shè)備
- 目標(biāo)處理方法、目標(biāo)處理裝置、目標(biāo)處理設(shè)備及介質(zhì)
- 目標(biāo)處理方法、目標(biāo)處理裝置、目標(biāo)處理設(shè)備及介質(zhì)
- 目標(biāo)跟蹤系統(tǒng)及目標(biāo)跟蹤方法
- 用于從受控對(duì)話語(yǔ)法創(chuàng)建混合主導(dǎo)語(yǔ)法的方法和設(shè)備
- 語(yǔ)音識(shí)別裝置及其方法
- 模擬執(zhí)行網(wǎng)頁(yè)以刪除并整理原始碼的系統(tǒng)及其方法
- 基于多元特征的英語(yǔ)作文語(yǔ)法錯(cuò)誤自動(dòng)糾正方法
- 用于生成源碼的方法和裝置
- 一種風(fēng)控規(guī)則編輯器交互裝置及方法
- 一種基于SQL語(yǔ)言的語(yǔ)法語(yǔ)句的擴(kuò)展方法及系統(tǒng)
- 一種基于聲明式語(yǔ)法的兩層可視化聯(lián)動(dòng)編排方法及系統(tǒng)
- 語(yǔ)法改錯(cuò)質(zhì)量評(píng)估方法和系統(tǒng)
- 機(jī)器翻譯中的語(yǔ)法自糾正方法
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





