[发明专利]用于对具有缺少源位置的代码段的源代码建模的方法有效
申请号: | 201480007584.3 | 申请日: | 2014-02-04 |
公开(公告)号: | CN104969188B | 公开(公告)日: | 2017-05-17 |
发明(设计)人: | J·V·戈格;S·F·耶奇;M·J·弗洛姆贝格;A·沙利;G·S·韦斯特;J·A·丹尼特;L·埃斯佩霍尔特;R·A·布朗斯坦 | 申请(专利权)人: | 谷歌公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市柳沈律师事务所11105 | 代理人: | 邵亚丽 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 具有 缺少 位置 代码 源代码 建模 方法 | ||
背景技术
软件开发者使用若干不同的编程语言来编写源代码。每个编程语言具有不同的语法和语义。需要编码工具(该编码工具包括代码浏览器、集成的开发环境(IDE)和历史分析工具)能够理解源代码语言,以便这些工具能够用于软件开发者。多数工具擅长表示一种或多种语言,但是在支持其他语言方面具有困难。为了跨所有编程语言具有适当的工具支持,应当存在能够由所有工具来使用的单个代码模型。针对所有语言来表示源代码的语义和语法需要复杂的数据模型和理解每种语言的细微差别的服务。还需要数据模型和服务能够对元素编索引以及显示来自任何编程语言和跨语言的元素之间的关系。
发明内容
本说明书描述了总体上与数据建模相关的技术,以及具体地与用于对缺少源位置的代码段建模的方法和系统相关的技术。
一般而言,本说明书中所描述的主题的一方面可以在用于对源代码建模的系统和方法中来实施。示例性系统包括一个或多个处理设备以及存储指令的一个或多个存储设备,该指令在由一个或多个处理设备执行时引起一个或多个处理设备:接收包括不具有源位置的代码段的源代码;对所接收的源代码编索引;根据经编索引的源代码创建数据模型,该数据模型包括表示代码元素的多个节点以及用于元素之间的关系的多个边;确定要与每个节点关联的源位置;响应于将代码段中的一个代码段识别为隐藏代码段或者隐式代码段,创建用于代码段的虚构表示;以及将所创建的代码段指派为与代码段的节点关联的源位置。示例性方法包括:接收包括不具有源位置的代码段的源代码;对所接收的源代码编索引;根据经编索引的源代码创建数据模型,数据模型包括表示代码元素的多个节点以及用于元素之间的关系的多个边;确定要与每个节点关联的源位置;响应于将代码段中的一个代码段识别为隐藏代码段或者隐式代码段,创建用于代码段的虚构表示;以及将所创建的代码段指派为与代码段的节点关联的源位置。用于使用表示不具有源位置的代码段的数据模型的第二示例性方法包括:请求包括不具有源位置的代码段的代码的数据模型;接收包括不具有源位置的代码段的虚构表示的所请求的数据模型;以及可选地向最终用户显示所述代码段的所述虚构表示。
这些以及其他实施例可以可选地包括以下特征中的一个或多个特征:可以特别地注释虚构节点以将所述节点同所述数据模型中的其他节点区分开来;可以向用户提供数据模型;可以经由应用编程界面(API)来提供数据模型;可以经由用户界面向用户提供数据模型;可以经由命令行代码来向用户提供数据模型;虚构表示的内容可以是有效的代码语法;虚构表示的内容对代码行为建模,但是不表示有效的代码语法;可以存在有在使用隐藏代码段或者隐式代码段的源代码的节点与表示所创建的虚构的节点之间的边;数据模型可以包含关于虚构表示的元数据;元数据可以用来示出或者隐藏来自最终用户的虚构表示;元数据可以用于显示代码段是虚构这一信息;元数据可以用于显示代码段包含虚构这一信息;以及数据模型可以使用应用编程界面来请求。
在仅以说明的方式给出的附图以及下面的说明书中给出本发明的一个或多个实施例的细节。本发明的其他特征、方面和优点根据说明书、附图和权利要求将变得很清楚。各个附图中相似的附图标记指示相似的元素。
附图说明
图1a是图示示例性代码段的框图。
图1b是图示示例性代码段的框图。
图2是图示用于图1a和图1b中定义的代码段的数据模型的框图。
图3是图示对两个代码段编索引并且绘制两个代码段的示例性过程的框图。
图4是图示用于图3中定义的代码段的数据模型的框图。
图5是图示包括用于隐藏代码和/或隐式代码的代码虚构的、用于图3中所定义的代码段的示例性模型的框图。
图6是图示对宏编索引并且绘制宏的示例性过程的框图。
图7是图示用于图6中定义的宏的数据模型的框图。
图8是图示包括用于隐藏代码和/或隐式代码的代码虚构的、用于图6中定义的宏的示例性模型的框图。
图9是用于创建表示隐藏代码和/或隐式代码的代码虚构的示例性方法的流程图。
图10是图示示例性计算设备的框图。
图11是用于使用表示不具有源位置的代码段的数据模型的示例性方法的流程图。
具体实施方式
示例性数据模型和服务提供源代码和编译器元数据的语言中性规范化表示。该模型将源代码表示为数据图。数据图是存储数据并且使用有限点集、调用节点、线、调用边来示出数据之间的关系的数据结构。如图2所描绘的,通过使用边彼此连接节点来表示图内的关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌公司,未经谷歌公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480007584.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:高性能互连一致性协议
- 下一篇:用于实现便笺式存储器的装置和方法