[发明专利]用于声明性数据脚本语言的类型系统无效

专利信息
申请号: 200980140409.0 申请日: 2009-09-30
公开(公告)号: CN102171681A 公开(公告)日: 2011-08-31
发明(设计)人: D·E·兰沃西;G·柏曼;A·D·高登;D·F·伯克斯;B·H·洛夫林;J·C·施利梅尔;J·D·多蒂 申请(专利权)人: 微软公司
主分类号: G06F17/00 分类号: G06F17/00;G06F17/30
代理公司: 上海专利商标事务所有限公司 31100 代理人: 潘明婳
地址: 美国华*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 声明 数据 脚本语言 类型 系统
【说明书】:

技术领域

本主题公开内容一般地涉及用于声明性数据脚本语言的有表现力的、紧凑的且灵活的类型系统。

背景

作为一般的背景,脚本语言是控制软件系统、应用程序和程序的编程语言。脚本常常被不同于“程序”对待,它独立于其他应用程序而执行。另外,脚本可以不同于应用程序的“核心代码”,它可以用不同的语言来写成。脚本可以由开发者或其他程序以源格式或目标格式来编写,它覆盖了在人类友好或机器友好或均不友好的方面的全部范围。当最终用户可访问时,脚本允许应用程序的行为适应用户的需要。还可以从源代码解释脚本,或被“半编译”成字节码或被解释的另一机器友好的格式。脚本语言还可以被嵌入在它们与之关联的应用程序中。

对于进一步的背景,类型系统定义编程语言如何将值和表达式分类成类型、它可以如何操纵那些类型和它们如何交互。类型将值或一组值标识为具有成特定的含义或目的,尽管诸如抽象类型和函数类型等的一些类型可以不被表示成执行的程序中的值。类型系统在各语言之间显著地不同,例如,连同其他种类的差异一起,类型系统可以随它们的编译时语法和运行时操作实现而不同。

对于如何使用各类型的示例,编译器可以使用静态类型的值来优化存储以及用于对该值的操作的算法选择。在许多C编译器中,例如,根据单精度浮点数的公认的标准,以32位来表示标称(nominal)类型化的“浮点”数据类型。C因而对那些值使用浮点专用的操作,例如,浮点加、乘等等。另外,类型约束条件的深度以及它们的评估的方式可以影响语言的类型化。

在一些情况中,开发者即人类创建定义源代码的文本,编译器将该语言翻译成一种或多种机器友好的格式以供给定的平台执行目标代码。在其他情况中,应用程序或机器本身可以生成代码以供跨越数据存储执行,在代码生成时不涉及人类。在任一种情况中,期望保持语言紧凑但也高度有表现力的和合乎逻辑的高效的、合乎逻辑的且有表现力的类型系统,以使得可以连同高效的存储表示一起生成高效的和结构紧凑的数据密集的应用程序。然而,常规的编程语言的类型系统对于大规模数据处理和消费的复杂性来说不是足够通用和足够灵活的。简而言之,当涉及大量的数据时,类型系统的任何复杂性或灵活性的缺乏以及所关联的低效率会按指数或不成比例地放大。

因此,当大量的数据被存储在数据库中时,例如当一组服务器计算机在长时间段内收集大量数据的记录或事务时,开发者、其他计算机、其他应用程序等等可能希望经由一个或多个脚本访问数据或数据的有针对性的子集。编程类型构造这样的脚本的效率和所得到的数据结构的可被表示的得到的简单性变成重要的目标,尤其是在这样的脚本针对巨量的数据而操作时。举例来说,可能希望经由一个或多个方法、脚本或程序查询一些数据的某个子集、读取或写入数据、更新数据或对数据应用任何其他处理。给定计算领域中的数据值的多样性,丰富地和高效地表达类型的能力可以显著地改善数据密集的应用程序和程序的所得到的性能。因而存在对带有解决用于大规模数据处理系统的当前类型系统的这些和其他不足的类型系统的编程语言的长期需求。

上面所描述的编程语言的当前类型系统的背景信息和不足仅仅旨在提供常规系统的背景信息和问题中的一些的一般概览,且不旨在是详尽的。常规系统的其他问题和在此描述的各种非限制性实施例的相应益处可以在查看下列描述后变得进一步明显。

概述

在此提供简化的概述以便帮助允许对在更详细的描述和附图中出现的示例性的、非限制性的实施例的各种方面的基本理解或一般理解。然而,本发明内容不旨在作为广泛概览或详尽概览。相反,本发明内容的唯一目的是作为后续各个实施例的更详细的描述的序言而以简化形式呈现与一些示例性非限制性实施例相关的一些概念。

提供高效的、合乎逻辑的且有表现力的类型系统的各个实施例,以便用于灵活地定义声明性编程语言的类型,使得可以生成高效的且结构上紧凑的数据密集的应用程序。在一个非限制性方面中,该类型系统支持精化(refinement)类型和类型成员表达式的组合。连同其他非限制性的方面一起,与包括所有有效值作为成员的顶端类型(top type)组合,各类型可以被表示成其他类型的交和/或并。因而,可以为在真实世界数据的大规模集合中存在的全部数据类型高效地表示类型。

下面更详细地描述这些和其他实施例。

附图简述

参考附图进一步描述各种非限制性的实施例,附图中:

图1是用于声明性编程语言和相关结构的编译过程链的框图;

图2是阐释在此描述的一个或多个实施例中的类型系统的示例性方面的第一框图;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200980140409.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top