[发明专利]动态惰性类型系统有效
申请号: | 201210037527.2 | 申请日: | 2012-02-17 |
公开(公告)号: | CN102693154B | 公开(公告)日: | 2018-01-09 |
发明(设计)人: | E·克里斯腾森;M·科尔森;C·西泽伯斯基;G·休斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 黄嵩泉 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 惰性 类型 系统 | ||
技术领域
本发明涉及类型系统,尤其涉及动态惰性类型系统。
背景技术
类型系统定义了如何将表达式、值等分类成各类型以及各类型之间的交互的程序行为。类型,或更具体地,数据类型指定了对数据利用的约束。类型系统可被用于执行许多有用的任务,尤其包括类型检查,以根据与数据相关联的类型来标识程序性错误。因此,程序安全度可通过检查无意义代码或类似的无效代码来获得。
类型系统跨各编程语言而变化。例如,编程语言可以是静态类型化的或动态类型化的。静态类型化的语言(例如,C、Java、Haskell……)使得程序能够在执行之前的编译时间进行类型检查。因而,例如通过显式规范或类型推断,在编译时间所有的类型都已知。动态类型化的语言(例如,JavaScript、Smalltalk……)是不同的,因为它们在运行时进行类型检查。因此,在使用之前不必显式地指定各类型,相反在执行期间确定各类型。
关于静态和动态类型化存在各种折衷。具体地,静态类型化是有益的,因为可以在执行之前检测出错误并且程序可以非常高效地执行。此外,可以提升设计时间体验,因为可基于各类型来提供诸如自动填充和建议之类的协助。然而,动态类型化的语言比静态类型化的语言允许更多程序性的灵活性,同时仍然通过运行时检查来提供某种程度的类型安全性。此外,动态类型化的语言更易于使用,因为程序员不必考虑类型规范的问题。
发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本理解。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。
简述之,本公开一般涉及动态的惰性类型系统。更具体地,可在执行期间惰性地为值标识类型。随后,可执行类型检查以定位和返回任何类型错误。换言之,提供了一种用于以动态的惰性编程语言来指定的计算机可执行程序的类型系统。因此,可以指定具有运行时灵活性和轻量注释结合类型系统所提供的益处的程序。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图说明
图1是类型系统的框图。
图2A-B是示出采用类型检查包装的框图。
图3是将类型示为对一组类别的约束的框图。
图4是类型检查的方法的流程图。
图5是联合执行的方法的流程图。
图6是示出用于本公开的各方面的合适的操作环境的示意性框图。
具体实施方式
以下的细节一般涉及动态的惰性类型系统。类型系统提供了对用动态的惰性编程语言所指定的计算机可执行程序的类型支持。因此,程序可获益于运行时灵活性和轻量注释结合由实质的类型系统所提供的益处。
先前的发明要么涉及动态编程语言要么涉及惰性编程语言,但均未涉及这两者。例如,已经作出使如Smalltalk等动态语言配备有类型系统(例如,“StrongTalk”)的尝试。然而,Smalltalk不是惰性的,且StrongTalk类型系统实质上与此处所提供的本类型系统的能力是不同的。此外,已经作出了使惰性语言配备有强静态类型系统的尝试。主要示例是Haskell编程语言。然而,Haskell不是一种动态语言。
现在参考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
首先参考图1,示出了用于动态的惰性编程语言的类型系统100。类型系统100提供了向各值分配类型并根据各类型来标识计算机程序中的错误(例如,无意义的代码)从而提供某种程度的程序安全性的机制。另外且如下文进一步讨论的,根据一实施例,类型的分配可便于联合执行(例如,跨不同的执行引擎/环境的分布式执行)。此外,类型系统100可在以动态的惰性编程语言来指定的计算机可执行程序上动态地且惰性地操作。因此,类型系统100可被称为动态惰性类型系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210037527.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种PVB膜的制造方法
- 下一篇:稀土磁体及其制造方法