CN107810474B - 大规模源代码存储库中的自动导入及依赖性 - Google Patents
大规模源代码存储库中的自动导入及依赖性 Download PDFInfo
- Publication number
- CN107810474B CN107810474B CN201680037594.0A CN201680037594A CN107810474B CN 107810474 B CN107810474 B CN 107810474B CN 201680037594 A CN201680037594 A CN 201680037594A CN 107810474 B CN107810474 B CN 107810474B
- Authority
- CN
- China
- Prior art keywords
- qualified
- name
- source code
- list
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
Abstract
本发明公开了用于找出源代码文件中的至少一个简单名的合格名的候选的系统和方法。可以接收具有需要对应合格名的至少一个简单名的源代码文件。可以解析所述源代码文件以确定所述文件中的简单名和所述文件中的合格名。针对需要对应合格名的至少一个简单名,可以搜索源代码图以找出与所述至少一个简单名相对应的潜在候选合格名。在从所述源代码图中接收到潜在候选合格名的列表后,可以向用户输出所述列表以便所述用户选择适当的合格名。针对所述合格名,还可以选择构建依赖性。
Description
背景技术
开发者经常构建包含外部代码或库的复杂软件应用。例如,开发者可能希望在其应用中包括人员列表。开发者可能代替定义他自己的列表对象而包括来自外部包的列表类。在如图1所示的这个示例中,开发者可以在他的代码中包括来自标准库的列表,诸如“java.util.List”。“java.util.List”是通过java.util包可公开获得的有序集合类。一旦列表被导入开发者的源代码文件中,开发者便可以简单地利用简单名“List”来引用该列表,而不必在各处实例化或使用该列表时使用完全合格名(qualified name)“java.util.List”。例如,在图1的行3中,代码仅涉及简单名“List”,而不涉及合格名“java.util.List”。
虽然使用标准集成开发环境(IDE)能够使定义合格名的包、库或外部代码导入源代码的过程对于小规模代码库简单直接,但大规模代码库对于标准IDE而言具有过多外部依赖性而无法有效率地找出称为合格名的适当全名或者依赖性的适当构建系统构造。
常规的系统通过查看整个代码库并且试图确定适当的包、库或其他外部代码来尝试实时找出合格名。这个过程非常耗时。使用这种方法根本无法在合理的时间内处理大量的源代码。
正如本发明人所认识到,期望能够快速地找出合格名的候选以导入适当的包、库或外部代码,以用于源代码中存在的简单名引用以及提供合格名的构建系统依赖性。
发明内容
本说明书描述有关针对源代码文件——例如Java语言的源代码文件——中的至少一个简单名找到合格名的候选的技术。
一般而言,本说明书中所述的主题的一方面能够被实施在一种用于找出源代码文件中的至少一个简单名的合格名的候选的系统中。一种示例系统可以包括一个或多个处理设备以及一个或多个存储设备,所述存储设备存储实现示例方法的指令。一种示例方法可以包括:接收具有需要对应合格名的至少一个简单名的源代码文件;解析所述源代码文件以确定所述文件中的简单名和所述文件中的合格名;针对需要对应合格名的至少一个简单名,搜索源代码图以找出与所述至少一个简单名相对应的潜在候选合格名;以及在接收到来自所述源代码图的潜在候选合格名的列表后,输出所述列表。
这些及其他实施例能够可选地包括以下特征中的一个或多个:在输出所述列表之前,可以用附加信息过滤或充实所述列表;一旦合格名被选择,便可以确定特定合格名的构建依赖性以及构建目标;在输出所述列表之前,可以基于其他源代码文件已经使用特定类型的合格名的次数来过滤所述列表;可以基于源代码存储库的其他部分中已经使用特定合格名的频率来排名所述列表;如果所述列表仅包含一个潜在合格名,则无需用户交互便可以自动选择该名作为所述合格名;可以为用户提供接口以接收对潜在候选合格名的列表中的合格名的选择;过滤可以包括:确定合格名包是否从其中与所述合格名潜在相对应的简单名当前正被引用的源代码文件可见,以及响应于确定所述合格名包从所述源代码文件可见,提供所述合格名包的名称作为潜在候选合格名;以及过滤可以包括:确定合格名包能够向构建过程增添的复杂度,包括为了构建所述源代码文件所增加的时间和/或资源,以及响应于确定合格名包向所述构建过程增添的复杂度是可承受的量,将所述合格名包的名称添加到潜在候选合格名的列表。
附图说明
图1是包括合格名和简单名的源代码的示例。
图2是图示出用于确定源代码文件中的简单名的合格名的示例系统的框图。
图3是图示出示例计算设备的框图。
具体实施方式
根据一个示例实施例,在分布式系统中可能存在大型图,其表示某个源代码存储库或某些源代码存储库的所有源代码。可以将源代码编制索引来创建图。在一些实施例中,该图可以存在于供开发者远程访问的一个机器或几个机器上,使得并不在各开发者的机器上运行该图,并且能够供多个开发者同时访问该图。在最简单的形式中,该图可以是两个表格,第一表格将简单名映射到合格名,并且第二表格映射合格名以构建系统依赖性。通过在分布式系统或云环境中创建和访问该图,在开发者之间能够缓存和重用计算。在其他实施例中,该图可以存在于开发者自己的机器上。
如图2所示,示例源代码文件(201)中有两个简单名,行3上的“Bar”以及行5上的“Foo”。“Bar”的合格名在代码中被提供为行1上的“com.sourcecode.Bar”。然而,没有提供“Foo”的合格名。
在一个示例系统中,在开发者机器上运行的集成开发环境(IDE)可以具有解析器(203),其可以提供在特定源代码文件中使用的简单名的列表。解析器(203)也可以提供源代码文件中的合格名的列表。针对如图2所示的源代码文件,简单名的列表可以是:[Foo,Bar]。合格名的列表可以是:[com.sourcecode.Bar]。如图所示,可以不提供与简单名相对应的合格名。为了找到合格名以及为源代码中未提供对应合格名的简单名提供合格名的构建系统构造,可以针对简单名到合格名的可能扩展来查询源代码图(205)。在该给定的示例中,可以针对“Foo”的合格名以及与“Foo”相关联的构建依赖性来查询源代码图(205)。如果在该示例中提供合格名作为诸如“Bar”的导入,则构建系统依赖性可能存在或者可能不存在。因此,即使在源代码中提供完全合格名时,也可能针对构建系统依赖性来查询源代码图(205)。
例如,当查找“Foo”时,对源代码图(205)的搜索可能匹配包含名“Foo”的类和构建系统构件。在一些实施例中,可以通过简单名在代码中的使用方式来过滤结果。例如,如果调用“Foo”的某个方法,则可以从潜在候选列表中滤除不包含该方法的补全的完全限定潜在候选。然后,查询可以返回导入和构建系统依赖性的列表。本领域普通技术人员能够领会,存在多种方式来排序和过滤该列表。
可以遍历源代码图(205)以获得诸如在文件中找出的简单名的构建系统依赖性的信息。例如,源代码图可能能够为简单名“Foo”的合格名提供依赖性的目标,使得源代码能够被编译成目标文件。
通过遍历源代码图(205)所获得的给定简单名的潜在合格名的列表可以用其他数据来充实并且进一步过滤(213)。充实数据可以包括:在存储库中使用合格名的次数(以允许排名);合格名是否被标记为弃用,并且如果是,则应使用何合格名作为替代;合格名包是否从当前正引用其的源代码可见(一些类可能被有意限制到某些软件包);以及该合格名可能为构建过程增添的复杂度,包括为构建源代码而增加的时间和/或资源。例如,可以基于已由其他源代码文件使用特定类型的合格名的次数来过滤列表。过滤还可以包括移除所有不可见的类或者移除在代码中的特定上下文内会不适合的所有类。例如,“Foo”可以调用源代码文件中的特定方法,因此不具有该方法的所有匹配的“Foo”库都可以从潜在候选列表中滤除。当向用户(215)返回补全(completion)和依赖性的可能候选的列表以供考虑时,示例系统可以基于已由其他开发者在源代码存储库的其他部分中使用特定合格名的频率来排名返回的结果。
在一些实施例中,频繁使用的合格名是最有可能由开发者在他们的源代码文件中使用的名称。在其他排名当中,所述名也可以按照它们对它们在其中被视为使用的源代码文件是否可见、该名称表示的类是否具有在源代码文件中正使用的方法、以及这些类是否被弃用来排名。弃用的类可以在名称排名中降级。然后,可以向用户(215)示出用于代码中的特定简单名引用的潜在合格名候选的经充实、过滤的列表,并且针对简单命名的对象选择最适当的包、库或其他外部代码源。一旦用户(215)从合格名的候选中选择出源代码中的简单名的正确合格名,然后便可以将所选择的合格名再次发送到源图(205),以获取关于构建系统依赖性的信息,以便操控构建规则依赖性以及具体合格名的构建目标。在一些实施例中,用于补全和构建系统依赖性的潜在候选的列表可以被过滤,并且针对查询仅返回最有可能匹配的导入和构建系统依赖性。
如图2所示,一旦在源代码图(205)中找出或者从文件本身(203)解析出唯一合格名(207、209)并且其与源代码文件(201)中使用的简单名匹配,便可以将合格名添加/导入到文件(201)中。可以周期性重新生成源图,以便确定最常使用哪些类/构建依赖性。
如图3所示的示例方法开始于接收具有应当找出(或需要)其对应合格名的至少一个简单名的源代码文件(301)。然后,可以解析源代码文件以找出该文件中使用的简单名的列表以及该文件中的全部合格名的另一个列表(303)。针对应当找出对应合格名的至少一个的简单名,可以搜索全部源代码的图以找出该简单名的潜在候选合格名(305)。在一些实施例中,可以用附加信息过滤或者充实名称候选列表。可以将该列表提供给用户,以供该用户针对给定的简单名选择适当的合格名(309)。在一些实施例中,如果只有一个候选合格名,则用户可以不必选择合格名,并且可以自动选择该合格名。在其他实施例中,如果只有一个候选合格名,则用户可以仅确认该合格名是简单名的适当匹配。一旦选择合格名,一个示例方法便可以确定特定合格名的构建依赖性以及构建目标。可以将与源代码文件中的简单名匹配的合格名添加到源文件中。然后,可以重新生成源代码图,并且在将来的分析中可以使用关于简单名/合格名/构建依赖性频率的信息来找出合格名和构建依赖性。
图4是布置用于托管和发布软件包的示例计算机(400)的高级框图。在非常基本的配置(401)中,计算设备(400)通常包括一个或多个处理器(410)和系统存储器(420)。存储器总线(430)能够被使用于处理器(410)与系统存储器(420)之间的通信。
根据所需的配置,处理器(410)能够是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器(410)能够包括诸如一级缓存(411)和二级缓存(412)的一级或多级缓存、处理器内核(413)以及寄存器(414)。处理器内核(413)能够包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理内核(DSP内核)或其任意组合。存储器控制器(416)也能够与处理器(410)配用,或者在一些实施方式中,存储器控制器(415)能够是处理器(410)的内部部分。
根据所需的配置,系统存储器(420)能够是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任意组合。系统存储器(420)通常包括操作系统(421)、一个或多个应用(422)和程序数据(424)。应用(422)可以包括用于托管和发布软件包的方法。程序数据(424)包括存储的指令,所述指令在由一个或多个处理设备执行时实现用于托管和发布软件包的方法(423)。在一些实施例中,应用(422)能够被布置成与程序数据(424)一起在操作系统(421)上操作。
计算设备(400)能够具有附加的特征或功能以及附加的接口,用以促进基本配置(401)与任何所需的设备和接口之间的通信。
系统存储器(420)是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或者其他存储器技术、CD-ROM、数字多功能盘(DVD)或者其他光学存储、磁带盒、磁带、磁盘存储或者其他磁存储设备、或者能够被用于存储所需信息并且能够由计算设备400来访问的任何其他介质。任何这样的计算机存储介质能够是设备(400)的一部分。
计算设备(400)能够被实现为小型便携式(或移动式)电子设备的一部分,该电子设备诸如蜂窝电话、智能电话、个人数据助理(PDA)、个人媒体播放器设备、平板型计算机(平板)、无线web手表设备、个人头戴式送受话设备、专用设备或包括上述功能中任何功能的混合设备。计算设备(400)也能够被实现为包括膝上型计算机以及非膝上型计算机配置二者的个人计算机。
前文的详细描述已经通过使用框图、流程图和/或示例来阐述设备和/或过程的各个实施例。就这样的框图、流程图和/或示例包含一个或多个功能和/或操作而言,本领域技术人员会理解到,这样的框图、流程图或示例中的每个功能和/或操作能够单独和/或共同地通过各种硬件、软件、固件或几乎其任意组合来实现。在一个实施例中,本文所述主题的几个部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、其他集成格式或者作为web服务来实现。然而,本领域技术人员将认识到,本文中公开的实施例的一些方面能够全部或部分等同地以集成电路、作为在一个或多个计算机上运行的一个或多个计算机程序、作为在一个或多个处理器上运行的一个或多个程序、作为固件或者作为几乎其任意组合来实现,并且鉴于本公开,设计电路和/或编写软件和/或固件的代码会完全在本领域技术人员的技术范围内。此外,本领域技术人员将领会到,本文所述主题的机制能够作为各种形式的程序产品分发,并且本文所述主题的说明性实施例无论用于实际执行该分发的非暂时性信号承载介质的特定类型如何都适用。非暂时性信号承载介质的示例包括但不限于以下各项:可记录型介质,诸如软盘、硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字磁带、计算机存储器等;以及传输介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。
就本文中大体上任何复数和/或单数术语的使用而言,本领域技术人员能够视场境(context)和/或应用将复数转为单数和/或将单数转为复数。为清楚起见,本文可以明确阐述各个单数/复数置换。
因此,已对所述主题的特定实施例予以描述。其他实施例在所附权利要求书的范围内。在一些情况下,能够以不同的次序来执行权利要求中所记载的动作并且仍能获得期望的结果。此外,在附图中所描绘的过程不一定要求所示的特定次序或者顺序次序来获得期望的结果。在某些实施方式中,多任务以及并行处理可能是有利的。
Claims (12)
1.一种用于找出待编译的源代码文件中的至少一个简单名的合格名的候选的计算机实现的方法,所述方法包括:
接收待编译的源代码文件,所述源代码文件包括对应合格名被编译器需要的至少一个简单名;
解析所述源代码文件以确定所述源代码文件中的简单名和合格名;
针对对应合格名被需要的至少一个简单名,搜索源代码图以找出与所述至少一个简单名相对应的潜在候选合格名;
在接收到来自所述源代码图的潜在候选合格名的列表后,用附加信息充实潜在候选合格名的所述列表,其中,充实潜在候选合格名的所述列表包括:
确定为了构建与潜在候选合格名的所述列表中所包括的潜在候选合格名相对应的合格名包向构建过程添加的源代码所增加的时间或资源;
将所述合格名包的名称添加到潜在候选合格名的所述列表中;
输出所述列表;
一旦从潜在候选合格名的所述列表中选择了合格名,则确定特定合格名的构建依赖性以及构建目标;以及
基于所确定的构建依赖性以及构建目标来编译源代码。
2.根据权利要求1所述的计算机实现的方法,其中,充实所述列表包括:
在输出所述列表之前,充实所述列表以包括其他源代码文件已经使用特定类型的潜在候选合格名的次数。
3.根据权利要求1所述的计算机实现的方法,其中,充实所述列表包括:
基于源代码存储库的其他部分中已经使用特定潜在候选合格名的频率来排名所述列表。
4.根据权利要求1所述的计算机实现的方法,进一步包括:
如果所述列表仅包含一个潜在合格名,则无需用户交互便自动选择所述合格名。
5.根据权利要求1所述的计算机实现的方法,进一步包括:
提供接口以接收对潜在候选合格名的所述列表中的合格名的选择。
6.根据权利要求1所述的计算机实现的方法,其中,充实所述列表包括:
确定合格名包是否从其中与所述合格名包潜在相对应的简单名当前正被引用的源代码文件可见;以及
响应于确定所述合格名包从所述源代码文件可见,提供所述合格名包的名称作为潜在候选合格名。
7.一种用于找出待编译的源代码文件中的至少一个简单名的合格名的候选的系统,所述系统包括:
一个或多个处理设备;以及
一个或多个存储指令的存储设备,所述指令在由所述一个或多个处理设备执行时使得所述一个或多个处理设备:
接收待编译的源代码文件,所述源代码文件包括对应合格名被编译器需要的至少一个简单名;
解析所述源代码文件以确定所述源代码文件中的简单名和合格名;
针对对应合格名被需要的至少一个简单名,搜索源代码图以找出与所述至少一个简单名相对应的潜在合格名;
在接收到来自所述源代码图的潜在候选合格名的列表后,用附加信息充实潜在候选合格名的所述列表,其中,充实潜在候选合格名的所述列表包括:
确定为了构建与潜在候选合格名的所述列表中所包括的潜在候选合格名相对应的合格名包向构建过程添加的源代码所增加的时间或资源;
将所述合格名包的名称添加到潜在候选合格名的所述列表中;
输出所述列表;
一旦从潜在候选合格名的所述列表中选择了合格名,则确定特定合格名的构建依赖性以及构建目标;以及
基于所确定的构建依赖性以及构建目标来编译源代码。
8.根据权利要求7所述的系统,其中,充实所述列表包括:
在输出所述列表之前,充实所述列表以包括其他源代码文件已经使用特定类型的潜在候选合格名的次数。
9.根据权利要求7所述的系统,其中,充实所述列表包括:
基于源代码存储库的其他部分中已经使用特定潜在候选合格名的频率来排名所述列表。
10.根据权利要求7所述的系统,进一步包括:
如果所述列表仅包含一个潜在合格名,则无需用户交互便自动选择所述合格名。
11.根据权利要求7所述的系统,进一步包括:
提供接口以接收对潜在候选合格名的所述列表中的合格名的选择。
12.根据权利要求7所述的系统,其中,充实所述列表包括:
确定合格名包是否从其中与所述合格名包潜在相对应的简单名当前正被引用的源代码文件可见;以及
响应于确定所述合格名包从所述源代码文件可见,提供所述合格名包的名称作为潜在候选合格名。
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 (2)
Publication Number | Publication Date |
---|---|
CN107810474A CN107810474A (zh) | 2018-03-16 |
CN107810474B true CN107810474B (zh) | 2020-12-29 |
Family
ID=56360528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680037594.0A Active CN107810474B (zh) | 2015-07-10 | 2016-06-27 | 大规模源代码存储库中的自动导入及依赖性 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10120679B2 (zh) |
EP (1) | EP3320430B1 (zh) |
JP (1) | JP6568605B2 (zh) |
KR (1) | KR101990603B1 (zh) |
CN (1) | CN107810474B (zh) |
DE (2) | DE202016008044U1 (zh) |
GB (1) | GB2556481A (zh) |
WO (1) | WO2017011176A1 (zh) |
Families Citing this family (3)
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101836188A (zh) * | 2007-10-26 | 2010-09-15 | 高通股份有限公司 | 基于服务器的代码编译 |
CN101968736A (zh) * | 2010-09-13 | 2011-02-09 | 杭州元睿信息技术有限公司 | 一种应用于Java到C++语言程序翻译中外部引用的翻译方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US20150309813A1 (en) * | 2012-08-31 | 2015-10-29 | 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 |
-
2015
- 2015-07-10 US US14/796,695 patent/US10120679B2/en active Active
-
2016
- 2016-06-27 DE DE202016008044.0U patent/DE202016008044U1/de active Active
- 2016-06-27 KR KR1020177036265A patent/KR101990603B1/ko active IP Right Grant
- 2016-06-27 JP JP2017564873A patent/JP6568605B2/ja active Active
- 2016-06-27 DE DE112016003130.0T patent/DE112016003130T5/de active Pending
- 2016-06-27 CN CN201680037594.0A patent/CN107810474B/zh active Active
- 2016-06-27 EP EP16735808.4A patent/EP3320430B1/en active Active
- 2016-06-27 WO PCT/US2016/039561 patent/WO2017011176A1/en active Application Filing
- 2016-06-27 GB GB1720895.0A patent/GB2556481A/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101836188A (zh) * | 2007-10-26 | 2010-09-15 | 高通股份有限公司 | 基于服务器的代码编译 |
CN101968736A (zh) * | 2010-09-13 | 2011-02-09 | 杭州元睿信息技术有限公司 | 一种应用于Java到C++语言程序翻译中外部引用的翻译方法 |
Also Published As
Publication number | Publication date |
---|---|
DE202016008044U1 (de) | 2017-01-27 |
DE112016003130T5 (de) | 2018-03-22 |
GB2556481A (en) | 2018-05-30 |
US10120679B2 (en) | 2018-11-06 |
WO2017011176A1 (en) | 2017-01-19 |
JP6568605B2 (ja) | 2019-08-28 |
KR20180008709A (ko) | 2018-01-24 |
JP2018519592A (ja) | 2018-07-19 |
GB201720895D0 (en) | 2018-01-31 |
CN107810474A (zh) | 2018-03-16 |
US20170010888A1 (en) | 2017-01-12 |
KR101990603B1 (ko) | 2019-06-18 |
EP3320430B1 (en) | 2022-05-11 |
EP3320430A1 (en) | 2018-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101841751B1 (ko) | 콜경로 파인더 | |
US10169471B2 (en) | Generating and executing query language statements from natural language | |
US8307010B2 (en) | Data feature tracking through hierarchical node sets | |
US8661023B1 (en) | Optimizing search query logic to speed retrieval | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US8868502B2 (en) | Organizing versioning according to permissions | |
US20090030902A1 (en) | Schematized data intelligent assistance for development environments | |
CN107810474B (zh) | 大规模源代码存储库中的自动导入及依赖性 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
US20070050380A1 (en) | Nullable and late binding | |
US11500619B1 (en) | Indexing and accessing source code snippets contained in documents | |
US9342809B2 (en) | Method and apparatus to populate asset variant relationships in repositories | |
US20150178075A1 (en) | Enhancing understandability of code using code clones | |
CN110764777B (zh) | 一种elf文件生成方法、elf文件、设备及存储介质 | |
CN105426541B (zh) | 一种通用数据的存储方法和装置 | |
US20130067338A1 (en) | Dynamic navigation region based on site usage | |
Levin et al. | owlcpp: a C++ library for working with OWL ontologies | |
CN107239395B (zh) | 一种源代码中无效函数的查找方法和设备 | |
Kokol | Metamodeling: How, why and what? | |
CN113590088B (zh) | 一种自动分析组件使用情况的方法、装置和电子设备 | |
US11188324B2 (en) | Methods, systems, and articles of manufacture to perform heterogeneous data structure selection via programmer annotations | |
US9038049B2 (en) | Automated discovery of resource definitions and relationships in a scripting environment | |
Skovhede et al. | Big Data Analysis with Skeletons on SOFA | |
CN116303528A (zh) | 数据探查方法、装置及设备 | |
CN116610700A (zh) | 查询语句检测方法及装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |