[發明專利]大規模源代碼存儲庫中的自動導入及依賴性有效
| 申請號: | 201680037594.0 | 申請日: | 2016-06-27 |
| 公開(公告)號: | CN107810474B | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 卡爾米·格魯什科 | 申請(專利權)人: | 谷歌有限責任公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/74 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 李寶泉;周亞榮 |
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 大規模 源代碼 存儲 中的 自動 導入 依賴性 | ||
1.一種用于找出待編譯的源代碼文件中的至少一個簡單名的合格名的候選的計算機實現的方法,所述方法包括:
接收待編譯的源代碼文件,所述源代碼文件包括對應合格名被編譯器需要的至少一個簡單名;
解析所述源代碼文件以確定所述源代碼文件中的簡單名和合格名;
針對對應合格名被需要的至少一個簡單名,搜索源代碼圖以找出與所述至少一個簡單名相對應的潛在候選合格名;
在接收到來自所述源代碼圖的潛在候選合格名的列表后,用附加信息充實潛在候選合格名的所述列表,其中,充實潛在候選合格名的所述列表包括:
確定為了構建與潛在候選合格名的所述列表中所包括的潛在候選合格名相對應的合格名包向構建過程添加的源代碼所增加的時間或資源;
將所述合格名包的名稱添加到潛在候選合格名的所述列表中;
輸出所述列表;
一旦從潛在候選合格名的所述列表中選擇了合格名,則確定特定合格名的構建依賴性以及構建目標;以及
基于所確定的構建依賴性以及構建目標來編譯源代碼。
2.根據權利要求1所述的計算機實現的方法,其中,充實所述列表包括:
在輸出所述列表之前,充實所述列表以包括其他源代碼文件已經使用特定類型的潛在候選合格名的次數。
3.根據權利要求1所述的計算機實現的方法,其中,充實所述列表包括:
基于源代碼存儲庫的其他部分中已經使用特定潛在候選合格名的頻率來排名所述列表。
4.根據權利要求1所述的計算機實現的方法,進一步包括:
如果所述列表僅包含一個潛在合格名,則無需用戶交互便自動選擇所述合格名。
5.根據權利要求1所述的計算機實現的方法,進一步包括:
提供接口以接收對潛在候選合格名的所述列表中的合格名的選擇。
6.根據權利要求1所述的計算機實現的方法,其中,充實所述列表包括:
確定合格名包是否從其中與所述合格名包潛在相對應的簡單名當前正被引用的源代碼文件可見;以及
響應于確定所述合格名包從所述源代碼文件可見,提供所述合格名包的名稱作為潛在候選合格名。
7.一種用于找出待編譯的源代碼文件中的至少一個簡單名的合格名的候選的系統,所述系統包括:
一個或多個處理設備;以及
一個或多個存儲指令的存儲設備,所述指令在由所述一個或多個處理設備執行時使得所述一個或多個處理設備:
接收待編譯的源代碼文件,所述源代碼文件包括對應合格名被編譯器需要的至少一個簡單名;
解析所述源代碼文件以確定所述源代碼文件中的簡單名和合格名;
針對對應合格名被需要的至少一個簡單名,搜索源代碼圖以找出與所述至少一個簡單名相對應的潛在合格名;
在接收到來自所述源代碼圖的潛在候選合格名的列表后,用附加信息充實潛在候選合格名的所述列表,其中,充實潛在候選合格名的所述列表包括:
確定為了構建與潛在候選合格名的所述列表中所包括的潛在候選合格名相對應的合格名包向構建過程添加的源代碼所增加的時間或資源;
將所述合格名包的名稱添加到潛在候選合格名的所述列表中;
輸出所述列表;
一旦從潛在候選合格名的所述列表中選擇了合格名,則確定特定合格名的構建依賴性以及構建目標;以及
基于所確定的構建依賴性以及構建目標來編譯源代碼。
8.根據權利要求7所述的系統,其中,充實所述列表包括:
在輸出所述列表之前,充實所述列表以包括其他源代碼文件已經使用特定類型的潛在候選合格名的次數。
9.根據權利要求7所述的系統,其中,充實所述列表包括:
基于源代碼存儲庫的其他部分中已經使用特定潛在候選合格名的頻率來排名所述列表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于谷歌有限責任公司,未經谷歌有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201680037594.0/1.html,轉載請聲明來源鉆瓜專利網。





