JP2018519592A5 - - Google Patents

Download PDF

Info

Publication number
JP2018519592A5
JP2018519592A5 JP2017564873A JP2017564873A JP2018519592A5 JP 2018519592 A5 JP2018519592 A5 JP 2018519592A5 JP 2017564873 A JP2017564873 A JP 2017564873A JP 2017564873 A JP2017564873 A JP 2017564873A JP 2018519592 A5 JP2018519592 A5 JP 2018519592A5
Authority
JP
Japan
Prior art keywords
name
qualified
list
source code
names
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017564873A
Other languages
English (en)
Other versions
JP6568605B2 (ja
JP2018519592A (ja
Filing date
Publication date
Priority claimed from US14/796,695 external-priority patent/US10120679B2/en
Application filed filed Critical
Publication of JP2018519592A publication Critical patent/JP2018519592A/ja
Publication of JP2018519592A5 publication Critical patent/JP2018519592A5/ja
Application granted granted Critical
Publication of JP6568605B2 publication Critical patent/JP6568605B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (13)

  1. コンパイルすべきソースコードファイル内の少なくとも1つの単純名の修飾名の候補を探索するための、コンピュータによって実現される方法であって、
    コンパイルすべきソースコードファイルを受信するステップを備え、前記ソースコードファイルは、対応する修飾名がコンパイラによって必要とされる少なくとも1つの単純名を含み、前記方法は、
    前記ソースコードファイルをパースして前記ソースコードファイル内の前記単純名および前記修飾名を決定するステップと、
    対応する修飾名が必要とされる前記少なくとも1つの単純名に関して、ソースコードグラフを検索して前記少なくとも1つの単純名に対応する、可能性のある候補修飾名を探索するステップと、
    前記ソースコードグラフから可能性のある候補修飾名のリストを受信すると、追加情報を有する、前記可能性のある候補修飾名のリストのエンリッチメントを行なうステップとを備え、前記可能性のある候補修飾名のリストのエンリッチメントを行なうステップは、 前記可能性のある候補修飾名のリストに含まれる、可能性のある候補修飾名に対応する修飾名パッケージがビルドプロセスに追加する前記ソースコードをビルドする時間の増加を判断することと、
    前記修飾名パッケージの名前を前記可能性のある候補修飾名のリストに追加することと、
    前記リストを出力することとを含み、前記方法は、
    修飾名が前記可能性のある候補修飾名のリストから選択されると、特定の修飾名に関するビルドディペンデンシーおよびビルドターゲットを決定するステップと、
    前記決定されたビルドディペンデンシーおよびビルドターゲットに基づいて前記ソースコードをコンパイルするステップと、
    を備える、方法。
  2. 前記リストのエンリッチメントを行なうステップは、前記リストの出力に先立って特定の種類の可能性のある候補修飾名が他のソースコードファイルによって使用された回数を含むように前記リストのエンリッチメントを行なうことを含む、請求項1に記載のコンピュータによって実現される方法。
  3. 前記リストのエンリッチメントを行なうステップは、特定の可能性のある候補修飾名がソースコードリポジトリの他の部分において使用された頻度に基づいて前記リストのランク付けを行なうことを含む、請求項1に記載のコンピュータによって実現される方法。
  4. 前記リストが1つの可能性のある修飾名しか含まない場合、ユーザの対話なしで前記修飾名を自動的に選択するステップをさらに備える、請求項1〜3のいずれかに記載のコンピュータによって実現される方法。
  5. インターフェースを提供して前記可能性のある候補修飾名のリストから修飾名の選択を受信するステップをさらに備える、請求項1〜4のいずれかに記載のコンピュータによって実現される方法。
  6. 前記リストのエンリッチメントを行なうステップは、
    修飾名パッケージが、前記修飾名パッケージに対応する可能性のある単純名が現在参照されている前記ソースコードファイルから可視であるかどうかを判断することと、
    前記修飾名パッケージが前記ソースコードファイルから可視であるという判断に応じて、前記修飾名パッケージの名前を可能性のある候補修飾名として設けることと、
    を含む、請求項1〜5のいずれかに記載のコンピュータによって実現される方法。
  7. コンパイルすべきソースコードファイル内の少なくとも1つの単純名の修飾名の候補を探索するためのシステムであって、
    1つ以上の処理装置と、
    複数の命令を格納する1つ以上の記憶装置とを備え、前記複数の命令は、前記1つ以上の処理装置によって実行されると、前記1つ以上の処理装置に、
    コンパイルすべきソースコードファイルを受信することを行なわせ、前記ソースコードファイルは対応する修飾名がコンパイラによって必要とされる少なくとも1つの単純名を含み、前記複数の命令は、さらに、前記1つ以上の処理装置によって実行されると、前記1つ以上の処理装置に、
    前記ソースコードファイルをパースして前記ソースコードファイル内の前記単純名および修飾名を決定することと、
    対応する修飾名が必要とされる前記少なくとも1つの単純名に関して、ソースコードグラフを検索して前記少なくとも1つの単純名に対応する、可能性のある修飾名を探索することと、
    前記ソースコードグラフから可能性のある候補修飾名のリストを受信すると、追加情報を有する、可能性のある候補修飾名のリストのエンリッチメントを行なうこととを備え、前記可能性のある候補修飾名のリストのエンリッチメントを行なうことは、
    前記可能性のある候補修飾名のリストに含まれる、可能性のある候補修飾名に対応する修飾名パッケージがビルドプロセスに追加する前記ソースコードをビルドする時間の増加を判断することと、
    前記修飾名パッケージの名前を前記可能性のある候補修飾名のリストに追加することと、
    前記リストを出力することと、
    修飾名が前記可能性のある候補修飾名のリストから選択されると、特定の修飾名に関するビルドディペンデンシーおよびビルドターゲットを決定することと、
    前記決定されたビルドディペンデンシーおよびビルドターゲットに基づいて前記ソースコードをコンパイルすることと、
    を行なわせる、システム。
  8. 前記リストのエンリッチメントを行なうことは、前記リストの出力に先立って特定の種類の可能性のある候補修飾名が他のソースコードファイルによって使用された回数を含むように前記リストのエンリッチメントを行なうことを含む、請求項7に記載のシステム。
  9. 前記リストのエンリッチメントを行なうことは、特定の可能性のある候補修飾名がソースコードリポジトリの他の部分において使用された頻度に基づいて前記リストのランク付けを行なうことを含む、請求項7に記載のシステム。
  10. 前記リストが1つの可能性のある修飾名しか含まない場合、ユーザの対話なしで前記修飾名を自動的に選択することをさらに備える、請求項7〜9のいずれかに記載のシステム。
  11. インターフェースを提供して前記可能性のある候補修飾名のリストから修飾名の選択を受信することをさらに備える、請求項7〜10のいずれかに記載のシステム。
  12. 前記リストのエンリッチメントを行なうことは、
    修飾名パッケージが、前記修飾名パッケージに対応する可能性のある単純名が現在参照されている前記ソースコードファイルから可視であるかどうかを判断することと、
    前記修飾名パッケージが前記ソースコードファイルから可視であるという判断に応じて、前記修飾名パッケージの名前を可能性のある候補修飾名として設けることと、を含む、請求項7〜11のいずれかに記載のシステム。
  13. コンピュータに請求項1〜6のいずれか1項に記載の方法を実行させるプログラム。
JP2017564873A 2015-07-10 2016-06-27 大規模ソースコードリポジトリにおける自動インポートおよびディペンデンシー Active JP6568605B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/796,695 US10120679B2 (en) 2015-07-10 2015-07-10 Automatic imports and dependencies in large-scale source code repositories
US14/796,695 2015-07-10
PCT/US2016/039561 WO2017011176A1 (en) 2015-07-10 2016-06-27 Automatic imports and dependencies in large-scale source code repositories

Publications (3)

Publication Number Publication Date
JP2018519592A JP2018519592A (ja) 2018-07-19
JP2018519592A5 true JP2018519592A5 (ja) 2019-06-27
JP6568605B2 JP6568605B2 (ja) 2019-08-28

Family

ID=56360528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017564873A Active JP6568605B2 (ja) 2015-07-10 2016-06-27 大規模ソースコードリポジトリにおける自動インポートおよびディペンデンシー

Country Status (8)

Country Link
US (1) US10120679B2 (ja)
EP (1) EP3320430B1 (ja)
JP (1) JP6568605B2 (ja)
KR (1) KR101990603B1 (ja)
CN (1) CN107810474B (ja)
DE (2) DE202016008044U1 (ja)
GB (1) GB2556481A (ja)
WO (1) WO2017011176A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437568B1 (en) * 2017-05-18 2019-10-08 Palantir Technologies Inc. Real-time rendering based on efficient device and server processing of content updates
US10671383B2 (en) * 2017-12-04 2020-06-02 Oracle International Corporation Inferring code deprecation from module deprecation
US11062385B2 (en) * 2018-08-21 2021-07-13 International Business Machines Corporation Providing code offerings inside code

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365153B2 (en) * 2007-10-26 2013-01-29 Qualcomm Incorporated Server-based code compilation
US9424339B2 (en) * 2008-08-15 2016-08-23 Athena A. Smyros Systems and methods utilizing a search engine
US20100146481A1 (en) * 2008-12-09 2010-06-10 Microsoft Corporation Developing applications at runtime
US8364696B2 (en) * 2009-01-09 2013-01-29 Microsoft Corporation Efficient incremental parsing of context sensitive programming languages
US10175848B2 (en) * 2009-02-09 2019-01-08 Nokia Technologies Oy Displaying a display portion including an icon enabling an item to be added to a list
US8352913B2 (en) 2009-08-07 2013-01-08 Adobe Systems Incorporated Generating and resolving component names in an integrated development environment
DE102009059939A1 (de) * 2009-12-22 2011-06-30 Giesecke & Devrient GmbH, 81677 Verfahren zum Komprimieren von Bezeichnern
US9298427B2 (en) * 2010-01-06 2016-03-29 Microsoft Technology Licensing, Llc. Creating inferred symbols from code usage
US20110296386A1 (en) * 2010-05-28 2011-12-01 Salesforce.Com, Inc. Methods and Systems for Validating Changes Submitted to a Source Control System
US20110302565A1 (en) * 2010-06-07 2011-12-08 Ferris Michael S Implicit workspace dependencies
US8635204B1 (en) * 2010-07-30 2014-01-21 Accenture Global Services Limited Mining application repositories
CN101968736A (zh) * 2010-09-13 2011-02-09 杭州元睿信息技术有限公司 一种应用于Java到C++语言程序翻译中外部引用的翻译方法
US8584079B2 (en) * 2010-12-16 2013-11-12 Sap Portals Israel Ltd Quality on submit process
US20130326479A1 (en) * 2012-06-01 2013-12-05 Qnx Software Systems Limited System and method for tracking compliance information for a build-system product
EP2891101B1 (en) * 2012-08-31 2016-11-09 Iappsecure Solutions Pvt. Ltd. A system for analyzing applications in order to find security and quality issues
US20140201709A1 (en) * 2013-01-15 2014-07-17 Martin Carl Euerle JavaScript™ Deployment Build Tool for software code that uses an object literal to define meta data and system code.
US8972975B1 (en) * 2013-04-01 2015-03-03 Google Inc. Bounded installation time optimization of applications
US9244658B2 (en) * 2013-06-04 2016-01-26 Microsoft Technology Licensing, Llc Multi-step auto-completion model for software development environments
US9244679B1 (en) * 2013-09-12 2016-01-26 Symantec Corporation Systems and methods for automatically identifying changes in deliverable files
CN105335137B (zh) * 2014-07-23 2019-01-18 国际商业机器公司 用于处理源文件的方法和装置
US10210211B2 (en) * 2014-08-26 2019-02-19 Codota Dot Com Ltd. Code searching and ranking
US20160117154A1 (en) * 2014-10-23 2016-04-28 Telefonaktiebolaget L M Ericsson (Publ) Automated software include graph and build environment analysis and optimization in compiled language
US20160196204A1 (en) * 2015-01-04 2016-07-07 International Business Machines Corporation Smart Validated Code Searching System
US9612821B2 (en) * 2015-07-02 2017-04-04 International Business Machines Corporation Predicting the success of a continuous software deployment pipeline

Similar Documents

Publication Publication Date Title
EP3032409B1 (en) Transitive source code violation matching and attribution
US9021241B2 (en) Combined branch target and predicate prediction for instruction blocks
JP2019220141A (ja) ソフトウェアバイナリのハイブリッドファズテストのための、分岐網羅によりガイドされる記号実行
US9280331B2 (en) Hash-based change tracking for software make tools
KR20180032669A (ko) 콜경로 파인더
JP2018519592A5 (ja)
US10032204B2 (en) System and method for synthetic ideation
US20200012250A1 (en) Program editing device, program editing method, and computer readable medium
JP2017522639A5 (ja)
JP6568605B2 (ja) 大規模ソースコードリポジトリにおける自動インポートおよびディペンデンシー
RU2016147085A (ru) Осуществление доступа к семантическому контенту в системе разработки
KR102161055B1 (ko) 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치
US20150178075A1 (en) Enhancing understandability of code using code clones
CN107562533B (zh) 一种数据加载处理方法及装置
US20150178074A1 (en) Method, a system, and a non-transitory computer-readable medium for supporting application development
EP3195158B1 (en) Parallel processing using a bottom-up approach
Li et al. SWAP: Parallelization through algorithm substitution
US20150082443A1 (en) System to automate compliance with licenses of software third-party content
Herrera-Galeano et al. BLASTPLOT: a PERL module to plot next generation sequencing NCBI-BLAST results
Yu The coevolution of mobile os user market and mobile application developer community
EP2482203A1 (en) Electronic device and method for searching related terms
Liu et al. Research and implementation of random test generator for VLIW DSPs
CN117827287A (zh) 指令级并行调度方法、装置、电子设备及存储介质
US9772824B2 (en) Program structure-based blocking
KR101653686B1 (ko) 서비스 플로우 제공 방법, 이를 수행하는 서비스 플로우 제공 서버 및 이를 저장하는 기록매체