网站大量收购独家精品文档,联系QQ:2885784924

约束计算复杂度的类型系统.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
约束计算复杂度的类型系统

约束计算复杂度的类型系统 史杨勍惟1200012741 信息科学技术学院 蔡思培1100011788 信息科学技术学院 2015,06,16 1 简介 程序的复杂度探索已经成为了 21 世纪以来计算机科学领域最为炙手可热的话题之一。从 编程语言的类型系统设计上,这个问题也已经得到了不少深入的研究。这些研究中既包括了显 式地将计算复杂度嵌入类型系统,也包括隐式得通过类型系统来约束复杂度。 这次大作业我们针对命令式编程语言设计了一个能够约束计算复杂度的类型系统。在这个 系统中,所有Well-Type 的且能够终止的程序都能在多项式时间内计算,这也就意味着在这个 类型系统上的所有Well-Type 程序如果能够终止,那么计算的复杂度一定是多项式的。 本类型系统不支持高阶方法和递归嵌套,但对命令式编程中最基本的循环和分支语句均有 良好的支持。为了证明这个类型系统的实用性,这篇报告中会有几个示例程序,更进一步,还 有证明所有在确定性图灵机上多项式时间内可解的问题均可以用一个Well-Type 的程序模拟。 在我们代码的实现中,我们完成了类型检查的所有部分。Evaluation 部分由于时间原因没 有完成,但是由于这个代码和传统的命令式编程如 C 语言是兼容的,所以 Evaluation 部分也 不是重点。 2 核心思想 对于一个没有递归和高阶方法的程序语言来说,复杂度的约束主要实现在循环的控制上。 如果一个变量出现在循环的判断体中,那么这个变量就会对计算复杂度产生直接的影响。与此 同时,如果另一个变量在程序中有数据流流入一个会对复杂度产生直接影响的变量,那么这个 变量就会间接地对程序的复杂度产生影响。我们的类型系统核心的设计思想是通过类型来描述 这种数据流之间的关系。 一种最直觉的想法就是将所有直接或者间接对复杂度产生影响的变量归为同一类型, 不产生影响的变量归为另一类型,但是在具体设计的过程中我们发现在引入运算符和表 达式的类型之后,仅仅通过一个维度来划分是不够的,所以我们将类型扩展为一个二元组 ( ) ∈ {0 1} 1 3 类型系统 2 3 类型系统 3.1 Term ::= | ( ) ::= := | () | ′ | ; ′ ::=( ) ∈ {0 1} 以上是一个最基本的命令式编程语言的Term,其中包含了while 循环和if 分支语句。 3.2 Typing Rules Γ( ) = _ Γ ∆ ⊢ : ( ) Γ ∆ ⊢ : ( ) · · · : ( ) _ Γ ∆ ⊢ ( · · · ) : ( ) ( ) → · · · → (

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档