[发明专利]类型推理和类型导向的后期绑定无效
申请号: | 200680032080.2 | 申请日: | 2006-08-15 |
公开(公告)号: | CN101253478A | 公开(公告)日: | 2008-08-27 |
发明(设计)人: | H·J·M·梅杰;B·C·贝克曼;D·N·舒阿奇;A·希尔维;P·A·维克;P·F·德亚顿;A·Y·阿哈罗尼;R·拉梅尔 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 张政权 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 类型 推理 导向 后期 绑定 | ||
背景
随着编程方法和基础的发展,业已开发出各种应用编程接口(API)和编程模 式来将先前多变型且相对不兼容的编程方法进行标准化和统一化。因此,现代编程 经常是将各种API和模式与可再用库联用。此类编程语言持续不断地演进以便于 程序员做指定并便于程序的高效率执行。
编译器和/或解释器承担着将高级逻辑翻译成可执行机器代码的重任。一般而 言,编译器和/或解释器是接收以源代码编程语言(例如,C、C#、Visual Basic、 Java等)指定的程序并且将由此提供的逻辑转换成可由硬件设备执行的机器语言的 组件。然而,这种转换无需逐字进行。实际上,常规编译器和/或解释器对源代码 进行分析并且生成非常高效率的代码。例如,程序员写的代码阐述对人类而言直观 且易于理解的操作逻辑流,但是这些代码就计算机执行而言通常效率低下。编译器 和/或解释器能够标识出效率低下之处并且能通过消除不必要的操作和/或在仍实 现预期结果的同时重新编排指令的执行从而在硬件层面上改善程序性能。以此方 式,程序员就能够创建出强健且高效率的软件程序。
编程语言包括静态语言和动态语言。静态语言要求在编译之时大多数程序结 构-诸如变量和函数自变量的类型-是确定的。编译器能够以运行时灵活性为代价 检测差错并优化性能。另一方面,动态语言允许用户对程序结构进行更多的运行时 更改,诸如将不同类型的自变量传递给同一函数、以及在某些语言中还可定义新的 类型或类。动态环境能够使运行时定义和链接得以进行。
一般而言,类型推理是方便程序员写出正确地归类的应用程序的语言机制。 请考虑:
Dim X=″Hello″
作为一个Visual Basic语句的情形,该语句既宣示了变量X还将其值初始化为字符 串″Hello″。编译器知晓右手侧的类型是String(字符串)。因此,编译器能够推理 出变量的类型应该是X。当前,编译器将X的类型设置为该语言中最普通的类型 “Object(对象)”,并且利用后期绑定来解析后面仅对类型String合法的像 ″X.L.ength()″这样的代码。
后期绑定”指的是其中编译器在运行时插入代码以查找方法“Length(长度)” 的操作。对后绑定成员名的这种能力对于其中不能静态获知数据结构的数据密集型 程序、以及对于编写通用解释代码而言尤为重要。然而,后期绑定尽管非常灵活, 但有时候也会引入运行时开销并降低用户界面内的设计时提示(例如,当利用诸如 Intellisense之类的援助提供者时)。这会妨碍程序语言的灵活性。
因此,需要克服与常规系统和设备相关联的前述示例性缺陷。
概述
以下呈现了简化概述,以提供对权利要求主题的某些方面的基本理解。本概 述不是广范的纵览。它并非意在标识关键/重要元素,亦非意欲描绘权利要求主题 的范围。这一概述的唯一目的是以一种简化的形式来介绍一些概念,作为稍后呈现 的更为详细的描述的前序。
本发明提供了通过供给可选择进入(或选择退出)后期绑定的选项组件来平 衡编程语言中后期绑定和前期绑定的系统和方法,其中后期绑定是基于变量的静态 类型(例如,对象或类型/字符串)而触发的。类型推理组件以编程语言实现,并 且可以调用合适的后绑定助手(例如,用于XML类型的值的XML后绑定助手、 对象的反射后绑定助手等)来以类型导引后期绑定。由此,可基于为变量指定的类 型来触发后期绑定。选项组件可以包括智能标签或类似的重构机制,这能够让用户 选择“作为字符串”或“作为对象”,且不仅指定是否期望后期绑定,还指定例如 后期绑定的类型。后期绑定可以是有关该编程语言的默认场景,并且用户能够选择 退出。或者,编程语言可以包括非后期绑定作为默认,其中用户可选择进入。此外, 在Visual Basic(VB)句法的上下文中,智能标签在被点击时能够展开,以显式地 指示类型,其中变量声明即已可用。
根据本发明的另一方面,变量可以在编程语言的不同区域(例如,程序段) 具有不同的静态类型。此外,可以执行分析来标识变量在程序的不同段处的类型, 或者为该变量标识一组可能的类型。这能够减轻类型的早期束缚,而如果类型是可 接受的,则可在稍后的时间提供校验。还可以向用户提供有关变量类型变化的反馈 警告(相对于差错而言)。这能够为向户提供灵活性,于是例如相同的变量名就能 在整个编程代码中的若干场合使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680032080.2/2.html,转载请声明来源钻瓜专利网。