[发明专利]对源代码建模的方法和系统以及使用数据模型的方法有效
申请号: | 201710239359.8 | 申请日: | 2014-02-04 |
公开(公告)号: | CN107273109B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | J·范高;S.F.耶奇;M.J.弗洛姆贝格;A.沙利;G.S.韦斯特;J.A.丹尼特;L.埃斯佩霍尔特;R.A.布朗斯坦 | 申请(专利权)人: | 谷歌有限责任公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 金玉洁 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源代码 建模 方法 系统 以及 使用 数据模型 | ||
本发明公开了一种用于对不具有位置的代码段建模的系统和方法。可以将源代码编索引,以及在数据图中使用表示代码段的节点和表示节点之间的关系的边来建模。然而,一些代码元素可能是隐藏的或者隐式的,并且因此可能缺少位置信息。在这些情况下,创建代码虚构并且表示为图中的节点。虚构节点可以被特别地指派,使得虚构节点能够很容易地同真实源代码节点区分开来。然后更新图以便包括与隐藏代码或者隐式代码交互的节点中的代码虚构的位置信息。然后可以将数据图提供给用户,或者将数据图提供作为要通过编码工具来使用的服务。
本申请是国际申请日为2014年2月4日、中国申请号为201480007584.3、发明名称为“用于对具有缺少源位置的代码段的源代码建模的方法”的发明专利申请的分案申请。
技术领域
本申请涉及对源代码建模的方法和系统以及使用数据模型的方法。
背景技术
软件开发者使用若干不同的编程语言来编写源代码。每个编程语言具有不同的语法和语义。需要编码工具(该编码工具包括代码浏览器、集成的开发环境(IDE)和历史分析工具)能够理解源代码语言,以便这些工具能够用于软件开发者。多数工具擅长表示一种或多种语言,但是在支持其他语言方面具有困难。为了跨所有编程语言具有适当的工具支持,应当存在能够由所有工具来使用的单个代码模型。针对所有语言来表示源代码的语义和语法需要复杂的数据模型和理解每种语言的细微差别的服务。还需要数据模型和服务能够对元素编索引以及显示来自任何编程语言和跨语言的元素之间的关系。
发明内容
本说明书描述了总体上与数据建模相关的技术,以及具体地与用于对缺少源位置的代码段建模的方法和系统相关的技术。
一般而言,本说明书中所描述的主题的一方面可以在用于对源代码建模的系统和方法中来实施。示例性系统包括一个或多个处理设备以及存储指令的一个或多个存储设备,该指令在由一个或多个处理设备执行时引起一个或多个处理设备:接收包括不具有源位置的代码段的源代码;对所接收的源代码编索引;根据经编索引的源代码创建数据模型,该数据模型包括表示代码元素的多个节点以及用于元素之间的关系的多个边;确定要与每个节点关联的源位置;响应于将代码段中的一个代码段识别为隐藏代码段或者隐式代码段,创建用于代码段的虚构表示;以及将所创建的代码段指派为与代码段的节点关联的源位置。示例性方法包括:接收包括不具有源位置的代码段的源代码;对所接收的源代码编索引;根据经编索引的源代码创建数据模型,数据模型包括表示代码元素的多个节点以及用于元素之间的关系的多个边;确定要与每个节点关联的源位置;响应于将代码段中的一个代码段识别为隐藏代码段或者隐式代码段,创建用于代码段的虚构表示;以及将所创建的代码段指派为与代码段的节点关联的源位置。用于使用表示不具有源位置的代码段的数据模型的第二示例性方法包括:请求包括不具有源位置的代码段的代码的数据模型;接收包括不具有源位置的代码段的虚构表示的所请求的数据模型;以及可选地向最终用户显示所述代码段的所述虚构表示。
本说明书中所描述的主题的另一方面提供一种用于对源代码建模的方法,包括:接收包括不具有源位置的代码段的源代码;对所接收的源代码编索引;根据经编索引的源代码创建数据模型,所述数据模型包括表示代码元素的多个节点以及用于元素之间的关系的多个边;确定要与每个节点关联的所述源位置;响应于将所述代码段中的一个代码段识别为隐藏代码段或者隐式代码段,创建用于所述代码段的虚构表示,其中所述虚构表示的内容基于包括在所述数据模型中的边关系数据对代码行为建模;以及将所创建的虚构指派为与所述代码段的节点关联的所述源位置。
本说明书中所描述的主题的另一方面提供一种用于使用表示不具有源位置的代码段的数据模型的方法,包括:请求包括不具有源位置的代码段的代码的数据模型;接收包括不具有源位置的代码段的虚构表示的所请求的数据模型,其中所述虚构表示的内容基于包括在所述数据模型中的边关系数据对代码行为建模;以及可选地向最终用户显示所述代码段的所述虚构表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌有限责任公司,未经谷歌有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710239359.8/2.html,转载请声明来源钻瓜专利网。