当前位置: 首页 > 专利查询>微软公司专利>正文

后期绑定程序协助制造技术

技术编号:4634951 阅读:165 留言:0更新日期:2012-04-11 18:40
提供了用于集成开发环境(IDE)中的动态类型的程序协助。与后期绑定构造相关联的类型可以从静态信息中推断和/或从设计时执行中确定。协助然后可根据精确和/或推测类型来提供。此外,动态类型协助可以结合静态类型协助来采用以便于开发例如支持后期和早期绑定的程序。

【技术实现步骤摘要】
【国外来华专利技术】后期绑定程序协助些旦 冃豕计算机程序是描述由计算机或其他基于处理器的设备来执行的动作的指令 集。当计算机程序被加载在计算机硬件上并在其上执行时,计算机将通过遵循计算 机程序的指令来以预定方式工作。因此,计算机变为执行指令规定的任务的专用机器。使用一种或多种编程语言的程序员创建构成计算机程序的指令。通常,源代码由程序员手动地和/或在集成开发环境(IDE)的帮助下指定或编辑。随后,源代 码可由另一程序编译或以其他方式变换成可由计算机或类似设备执行的计算机指 令。作为示例,程序员可选择利用面向对象的编程语言(例如,Visual Basic、 C#、 Java...)来实现代码。根据这一范例,程序员将创建标识抽象事务的属性和特性的 多个类以及描述类行为或能力的各种方法。具体程序逻辑然后可被指定为类或对象 等的实例之间的交互。随后对于特定机器的可执行代码可由相关联的编译器产生。 或者,代码可被变换成对于目标虚拟机的中间代码(例如,CIL (公共中间语言)、 Java字节代码(JavaBytes Code))以便于经由对中间代码的进一步编译或解释在 多个计算机平台上执行。常轨上,编程语言或者是静态类型指定的或者是动态类型指定的。类型根据 语言类型系统来提供对数据解释的约束。因此,类型可用于经由类型检査来检测编 程错误。换言之,可以通过根据数据类型来检测无意义的或可能无效的代码来获取 一定程度的程序安全性。这可以静态地或动态地完成。静态类型指定语言使得能够 在编译时对程序进行类型检査。因此,所有类型在编译时例如通过显式指定或类型 推断来知晓。动态类型指定语言的不同之处在于它们是在运行时进行类型检查的。 结果,无须在使用之前显式地指定类型,相反,这些类型是在执行期间确定的。当选择语言时,程序员需要考虑静态和动态类型指定之间的折衷。具体地, 静态类型指定得益于可以在执行之前检测到错误并且程序可以非常高效地执行。此 外,可以改善设计时体验,因为诸如自动填充和建议等协助可以基于类型来提供。 然而,动态类型指定语言允许比静态类型指定语言更多的程序灵活性,同时仍然经由运行时检查来提供一定程度的类型安全性。此外,动态类型指定语言更易于使用,因为程序员无需关心类型指定。概述以下呈现了简化的概述,以提供对所要求保护的主题的某些方面的基本理解。本概述不是广泛的概观。它并不旨在标识关键/重要元素,也不旨在描绘所要求保护的主题的范围。其唯一的目的是以简化的形式来介绍一些概念,作为稍后提出的更为详细的描述的序言。简言之,本专利技术涉及提供程序协助。更具体地,可以提供关于动态/后期绑定类型和/或调用的程序协助。动态类型协助可以单独或结合静态类型协助采用以便于整体程序开发。这允许其中程序员在无需担心类型的情况下开始探查问题的非常灵活的编程风格。随后在设计定形(crystallize)时,可以添加静态类型指定(statictyping)以提供类型安全性和高效的执行。根据本专利技术的一方面,动态类型可以从静态信息和/或设计时执行中确定。诸如从程序流程分析、程序简档、程序员简档和先前运行中出现的静态信息可用于标识近似或推测动态类型。另外地或另选地,精确类型可以从设计时程序执行中标识。根据本专利技术的另一方面,程序协助可以根据一个或多个所标识的静态类型来提供。在一个实例中,这种协助可能涉及成员列表和自动代码完成。在这种情况下,成员可以根据一个或多个精确和/或近似类型来提供以便选择和自动代码完成。也提供了用于向用户提供相关程序协助的各种技术。为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护的主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护的主题的范围之内。当结合附图阅读以下详细描述时,本专利技术的其它优点和新颖特征将变得清楚。附图简述附图说明图1是根据所要求保护的主题的一方面的程序开发系统的框图。图2是代表性动态类型组件的框图。图3是代表性协助组件的框图。图4是优化的程序开发系统的框图。图5是为静态和动态类型两者提供协助的程序开发系统的框图。图6是支持自动重构(refactor)的程序开发系统600的框图。图7是可扩展程序开发系统的框图。图8是方便程序开发的方法的流程图。图9是提供程序协助的方法的流程图。图IO是在后期绑定和早期绑定的上下文之间转换的方法的流程图。图11是示出用于本专利技术的各方面的合适的操作环境的示意性框图。图12是示例计算环境的示意性框图。详细描述描述了关于集成开发环境中的后期绑定或动态类型程序协助的系统和方法。对于构造的精确和/或推测类型可以利用设计时分析来标识并且可用于提供包括自动代码完成的程序指定方面的有用协助。可以利用各种机制来提供最相关的协助。此外,动态类型程序协助可以结合静态类型程序协助来提供。现在将参考附图描述公开的主题的各个方面,全部附图中相同的标号指的是相同或相应的元素。然而,应理解,附图及其有关的详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护的主题的精神和范围内的所有修改、等效和替换方案。最初参考图1,示出了根据所要求保护的主题的一方面的程序开发系统100。在一个实例中,系统100可以对应于集成开发环境(IDE)或其各部分,包括但不限于代码编辑器。程序开发系统100特别包括动态类型组件110和协助组件120。动态类型组件110是用于为后期绑定程序构造确定类型的机制。如将在下文中更详细地描述的,动态类型组件110可用于判定、推断或以其他方法标识或查明精确类型和/或推测或近似程序数据类型。此外,动态类型组件110可以在设计时而非执行时标识一个或多个类型。协助组建120接收、取得或以其他方式获取或获得动态类型组件110所产生的类型信息并且基于该类型信息来生成反馈。基于类型的反馈特别能够方便程序或代码指定。在一个实例中,协助组件120可以提供建议、推荐或提示来帮助程序员。作为示例而非限制,在程序员指定对象接收者和点运算符(".")的地方,协助组件120可以提供标识若干语句完成选项的下拉菜单,这些选项包括由所标识的接收者类型或类提供的对象成员。程序开发系统100的一个优点是它允许灵活的编程风格。程序员使用后期绑定类型的一个原因是他们想要开始编程的容易的方式。他们想要开始"探查"问题空间而不深陷于类型声明等。这可以用其中程序员在能够自动推断出类型的地方省略类型的静态类型推测来部分地解决。然而,在变量只可以是特定静态类型的方面仍然是受限的。动态类型指定(Dynamic typing)在程序开发过程中给予进一步的灵活性和流畅性。不幸的是,常规技术由于未正好在最需要反馈的时刻提供程序协助而阻碍了这种编程风格。程序开发系统100通过提供关于动态或后期绑定类型的设计时程序协助或反馈解决了这个问题。转而关注图2,示出了根据本专利技术的一方面的代表性动态类型组件110。动态类型可以利用静态和/或执行分析来确定或逼近。因此,动态类型组件110包括静态分析组件210和执行分析组件220。静态分析组件210提供了用于用静态信息来逼近动态类型的机制。特别地,静态分析组件210可以采用硬编码的指令、启发式和/或机器学习来方便类型标识。此外,可标识不止一个类型,因为通过定义,很有本文档来自技高网...

【技术保护点】
一种集成程序开发系统,包括: 动态类型组件,其为后期绑定程序构造标识一个或多个候选类型;以及 协助组件,其根据所述类型来在代码编辑器中提供建议以便于程序指定。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:HJM梅杰A西尔弗PA维克
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1