CN107810474B - 大规模源代码存储库中的自动导入及依赖性 - Google Patents

大规模源代码存储库中的自动导入及依赖性 Download PDF

Info

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
Application number
CN201680037594.0A
Other languages
English (en)
Other versions
CN107810474A (zh
Inventor
卡尔米·格鲁什科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN107810474A publication Critical patent/CN107810474A/zh
Application granted granted Critical
Publication of CN107810474B publication Critical patent/CN107810474B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse 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所述的系统,其中,充实所述列表包括:
确定合格名包是否从其中与所述合格名包潜在相对应的简单名当前正被引用的源代码文件可见;以及
响应于确定所述合格名包从所述源代码文件可见,提供所述合格名包的名称作为潜在候选合格名。
CN201680037594.0A 2015-07-10 2016-06-27 大规模源代码存储库中的自动导入及依赖性 Active CN107810474B (zh)

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)

* 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

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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