[發(fā)明專利]重復(fù)代碼片段查詢方法和裝置在審
| 申請?zhí)枺?/td> | 201610384291.8 | 申請日: | 2016-06-01 |
| 公開(公告)號: | CN106919433A | 公開(公告)日: | 2017-07-04 |
| 發(fā)明(設(shè)計(jì))人: | 屠寅海 | 申請(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京市惠誠律師事務(wù)所11353 | 代理人: | 劉子敬 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 重復(fù) 代碼 片段 查詢 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及信息技術(shù),尤其涉及一種重復(fù)代碼片段查詢方法和裝置。
背景技術(shù)
在軟件開發(fā)過程中,經(jīng)常會將工作量較大的軟件開發(fā)項(xiàng)目分割為工作量較小的子項(xiàng)目,并由不同的程序員分別對子項(xiàng)目編寫程序代碼。當(dāng)兩個(gè)不同的子項(xiàng)目均需要用到同一個(gè)程序段時(shí),往往會出現(xiàn)兩個(gè)不同的子項(xiàng)目中出現(xiàn)完全相同的程序代碼,在這種情況下,若需要對該程序段進(jìn)行修改,則需要對各子項(xiàng)目中重復(fù)出現(xiàn)的全部該程序段均進(jìn)行修改,工作量較大且容易出現(xiàn)錯誤。
因此,在對子項(xiàng)目進(jìn)行整合之后,需要對整合所獲得的項(xiàng)目進(jìn)行優(yōu)化,具體來說,需要針對項(xiàng)目的程序代碼進(jìn)行重復(fù)代碼片段的查詢,將查詢出的重復(fù)代碼片段進(jìn)行復(fù)用或者說合并,從而提高可維護(hù)性。
現(xiàn)有技術(shù)中在查詢重復(fù)代碼片段時(shí),需要針對每一個(gè)代碼片段依次與其余代碼片段進(jìn)行比較,從而判斷出是否存在重復(fù)代碼片段,由于這種方式需要將全部的代碼片段數(shù)據(jù)存儲在內(nèi)存中,因此運(yùn)行開銷較大。
發(fā)明內(nèi)容
本發(fā)明提供一種重復(fù)代碼片段查詢方法和裝置,用于解決現(xiàn)有技術(shù)中查詢是否存在重復(fù)代碼片段時(shí),運(yùn)行開銷較大的技術(shù)問題。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
第一方面,提供了一種重復(fù)代碼片段查詢方法,包括:
獲取包含多個(gè)代碼片段的代碼序列的各后綴;
將各后綴所包含的代碼片段在所述代碼序列中的排序位置作為元素,構(gòu)造所述代碼序列的第一后綴數(shù)組;
根據(jù)由所述第一后綴數(shù)組中的各元素所得到的后綴,計(jì)算各后綴之間的公共部分;
利用所述公共部分,查詢所述多個(gè)代碼片段中的重復(fù)代碼片段。
第二方面,提供了一種重復(fù)代碼片段查詢裝置,包括:
后綴模塊,用于獲取包含多個(gè)代碼片段的代碼序列的各后綴;
構(gòu)造模塊,用于將各后綴所包含的代碼片段在所述代碼序列中的排序位置作為元素,構(gòu)造所述代碼序列的第一后綴數(shù)組;
計(jì)算模塊,用于根據(jù)由所述第一后綴數(shù)組中的各元素所得到的后綴,計(jì)算各后綴之間的公共部分;
查詢模塊,用于利用所述公共部分,查詢所述多個(gè)代碼片段中的重復(fù)代碼片段。
本發(fā)明實(shí)施例提供的重復(fù)代碼片段查詢方法和裝置,通過對多個(gè)代碼片段所構(gòu)成的代碼序列確定各后綴之后,將各后綴所包含的代碼片段在代碼序列中的排序位置作為元素,構(gòu)造代碼序列的后綴數(shù)組,從而根據(jù)由后綴數(shù)組中的各元素所計(jì)算出的各后綴之間的公共部分,查詢所述多個(gè)代碼片段中的重復(fù)代碼片段。由于所構(gòu)造的后綴數(shù)組中存儲的僅為一個(gè)指示后綴中代碼片段所在排序位置的數(shù)值,而不是將后綴中代碼片段的內(nèi)容存儲在后綴數(shù)組中,因此,也就不必將全部的代碼片段內(nèi)容存儲在內(nèi)存中,從而運(yùn)行的開銷較小,解決了現(xiàn)有技術(shù)中查詢是否存在重復(fù)代碼片段時(shí),運(yùn)行開銷較大的技術(shù)問題。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為本發(fā)明實(shí)施例一提供的一種重復(fù)代碼片段查詢方法的流程示意圖;
圖2為重復(fù)代碼片段查詢方法的執(zhí)行示意圖;
圖3為本發(fā)明實(shí)施例二提供的一種重復(fù)代碼片段查詢方法的流程示意圖;
圖4為逐個(gè)源文件進(jìn)行處理的流程示意圖;
圖5為逐行對源文件的代碼進(jìn)行處理的流程示意圖;
圖6為高度數(shù)組的計(jì)算示意圖;
圖7為本發(fā)明實(shí)施例三提供的一種重復(fù)代碼片段查詢裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例四提供的一種重復(fù)代碼片段查詢裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
為了便于理解本發(fā)明所提供的重復(fù)代碼片段查詢方法和裝置,在描述具體實(shí)施例之前,對實(shí)施例中所涉及的技術(shù)術(shù)語進(jìn)行解釋:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610384291.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





