[发明专利]用于构建时解析和类型检查引用的方法和系统有效
申请号: | 201480054964.2 | 申请日: | 2014-10-01 |
公开(公告)号: | CN105723336B | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | W-K·陈;J·于;A·P·里曼 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/54 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 顾嘉运 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 解析 类型 检查 引用 | ||
在不同代码中引用相同值的对应引用的构建时解析和类型强制。响应于在代码自身内检测到的第一代码中的第一引用与第二代码中的第二引用要被相关的指示,并响应于检测到所述引用的类型是相同的,代码生成工具生成相关代码,该代码可由编译器解释为允许第一代码的经编译形式的第一引用的类型的值被作为第二代码的经编译形式的第二引用的相同类型的相同值传递。随后可以编译所述第一代码、第二代码和所生成的相关代码。如果编译成功,这意味着所述第一和第二引用已被适当地解析为指代相同值并被类型强制。
技术领域
本申请涉及用于构建时解析和类型检查引用的方法和系统。
背景技术
计算机和计算系统已经影响了现代生活的近乎每一个方面。计算机通常涉及工作、休闲、医疗保健、运输、娱乐、家政管理等。计算系统正提供越来越复杂且精致的功能。这样的功能通常主要由底层软件驱动,该底层软件自身正变得越来越复杂。应用开发者具有开发这种软件的任务,并调谐性能来确保高效且安全的操作。
通常遵从客户端-服务器计算模型来设计和实现Web应用。这个模型通常提供,核心应用逻辑在远程服务器上执行,执行结果通过客户端(例如,web浏览器)来访问以及客户端代码使用应用层协议(例如,HTTP)来与服务器代码通信。服务器上web应用的执行通常由一组件来驱动,该组件取得并解析接收自客户端的输入,将具有经识别的输入参数的请求分派到相应的业务逻辑组件以供处理,并接着产生要被发送回客户端的输出。所产生的输出通常还确定接下来应用将要接收什么输入。这样的组件通常使用域语言(domainlanguage)来开发,所述域语言不同于用于开发所述应用的其他组件的编程语言。这种差异性有时可能导致解析输入的代码和产生输出的代码之间的语义间隙,以及不同的标识符被用于在不同组件中指代相同对象。
此处要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实现所述一些实施例的一个示例性技术领域。
发明内容
本文描述的至少一些实施例是指一种用于在引用相同值的不同代码中对应的引用的解析和类型强制的构建时机制。分析两个代码段,并且作为结果,检测到在第一代码中的第一引用将与第二代码中的第二引用相关使得它们都指代相同数据的指示(directive)。响应于所检测到的指示,如果第一和第二引用的类型是兼容的,则代码生成工具自动生成相关代码,该代码可由编译器解释为允许第一代码的经编译形式的第一引用的类型的值被作为第二代码的经编译形式的第二引用的相同类型的相同值传递。
随后可以编译所述第一代码、第二代码和所生成的相关代码。如果编译成功,这意味着所述第一和第二引用已被适当地解析为指代相同值,同时适当的类型强制也在构建时发生。因此,当经编译的代码运行时,不需要使用更多的计算资源来相关这两个引用,或确保它们的类型是兼容的。这样,在这两个代码之间的语义间隙在构建时而非在运行时被贯通。
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附图描述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1例示出其中可采用本文中所描述的原理的示例计算系统;
图2示出根据本文描述的原理的编程时环境,在其中代码创作实体提供关于到代码的名字映射的信息;
图3示出一种环境,在其中两个不同的代码片段包括语义上不同但指代相同或基本上相同的数据的引用;
图4示出用于解析和类型强制引用的构建时方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480054964.2/2.html,转载请声明来源钻瓜专利网。