-
公开(公告)号:CN105144098B
公开(公告)日:2018-11-13
申请号:CN201480003944.2
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , M·辛兹 , A·D·布罗姆菲尔德 , K·J·克瓦利纳
IPC: G06F8/30
Abstract: 本发明描述了可以在系统编程中提升安全性的语言扩展,在其中在该类型的所有实例不可变的情况下,整个类型可以被声明为不可变。不可变类型声明自动地使该类型的任何实例被视为不可变,并且自动使实例的所有直接或间接可达的成员(例如,字段、方法、属性)也被视为不可变。而且,允许实例的字段分配的任何构造时间引用不被允许超出实例变得对创建者可访问的点而继续存在。相应地,该实例以及相同类型的任何其他实例将会自构造时刻起不可变。将所有这种实例归类为不可变的能力是有利的,因为不可变性质允许由于资源访问安全而通常不会被允许的动作。
-
公开(公告)号:CN105164642B
公开(公告)日:2019-02-19
申请号:CN201480014378.5
申请日:2014-03-11
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , C·S·戈登 , A·D·布罗姆菲尔德 , M·塔耶费尔 , D·A·巴尔托落梅奥 , M·巴尼特
IPC: G06F9/4401
Abstract: 前端编译器将源代码编译成中间代码,该中间代码之后被编译成二进制代码。源代码定义执行作用域并包括合同。当在执行作用域的运行时遇到合同时,对该执行作用域的进一步执行以与该合同相关联的断言是否为真作为条件。前端编译器操作以便保留合同从而使该合同在语义上继续被结构化,以使得可以从中间语言代码去除该断言。该合同可因此继续被合同的语义分析所理解。因此,该断言可以被操作中间代码的静态分析工具理解。
-
公开(公告)号:CN104718529B
公开(公告)日:2018-05-15
申请号:CN201380053879.X
申请日:2013-10-15
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , M·辛兹 , A·D·布罗姆菲尔德
IPC: G06F8/30
CPC classification number: G06F8/433 , G06F9/468 , G06F9/52 , G06F17/30604 , G06F17/30958
Abstract: 从可执行组件返回的引用的注释表示没有对由返回的引用来引用的特定对象图的外部引用。如果1)没有对可执行组件的输入自变量或2)每一输入自变量不可改变或者表示没有指向对象图的外部可变的引用,并且没有引用外部对象的内部可变的引用的对象图,则将特定属性分配到返回的引用。相应地,如果返回的引用是可写入的(如通过对于可执行组件评估声明代码或调用代码所确定的),返回的引用随意具有给它分配的任何访问权限,也可以被分配到隔离的存储器位置,但是,这样的分配将导致返回的引用丢失特定属性。
-
公开(公告)号:CN105074667B
公开(公告)日:2018-12-21
申请号:CN201480004082.5
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: G·S·凯岑伯格 , J·P·帕森斯 , A·D·布罗姆菲尔德 , J·J·达菲 , K·J·克瓦利纳
IPC: G06F9/52
Abstract: 特定类型的类型定义,以使相应的对象图的不同部分可以具有在实例化期间被分配给那些部分的不同许可。这允许结构化许可被应用于那些已定义类型的对象图的实例化,从而允许对于对象图的哪些部分实施哪些访问许可进行细粒度控制。在一些实施例中,对象图的不同实例化可以不同地应用许可。
-
公开(公告)号:CN105210035A
公开(公告)日:2015-12-30
申请号:CN201480004086.3
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: J·P·帕森斯 , J·J·达菲 , G·S·凯岑伯格 , A·D·布罗姆菲尔德 , Y·罗岑菲尔德
IPC: G06F9/45
Abstract: 通过指定表示资源的引用的寿命来提高系统编程中的安全性的语言扩展。根据语言扩展,寿命以这样的方式引用特定作用域,其中编译器生成将引用的寿命强制执行为基于特定作用域的寿命(例如,不比其长)的计算机可执行指令。相应地,可以预先指定资源寿命具有特定作用域。这会帮助执行资源管理,因为典型的受管理的语言程序可以允许资源无限制地存在。此外,由于资源具有定义的有限寿命,因此,它们可以更方便地在栈上(而不是在对上)被分配,以便更有效的处理。
-
公开(公告)号:CN105164642A
公开(公告)日:2015-12-16
申请号:CN201480014378.5
申请日:2014-03-11
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , C·S·戈登 , A·D·布罗姆菲尔德 , M·塔耶费尔 , D·A·巴尔托落梅奥 , M·巴尼特
IPC: G06F9/45
CPC classification number: G06F8/41 , G06F8/436 , G06F8/52 , G06F9/45512 , G06F9/54
Abstract: 前端编译器将源代码编译成中间代码,该中间代码之后被编译成二进制代码。源代码定义执行作用域并包括合同。当在执行作用域的运行时遇到合同时,对该执行作用域的进一步执行以与该合同相关联的断言是否为真作为条件。前端编译器操作以便保留合同从而使该合同在语义上继续被结构化,以使得可以从中间语言代码去除该断言。该合同可因此继续被合同的语义分析所理解。因此,该断言可以被操作中间代码的静态分析工具理解。
-
公开(公告)号:CN105144098A
公开(公告)日:2015-12-09
申请号:CN201480003944.2
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , M·辛兹 , A·D·布罗姆菲尔德 , K·J·克瓦利纳
IPC: G06F9/45
Abstract: 本发明描述了可以在系统编程中提升安全性的语言扩展,在其中在该类型的所有实例不可变的情况下,整个类型可以被声明为不可变。不可变类型声明自动地使该类型的任何实例被视为不可变,并且自动使实例的所有直接或间接可达的成员(例如,字段、方法、属性)也被视为不可变。而且,允许实例的字段分配的任何构造时间引用不被允许超出实例变得对创建者可访问的点而继续存在。相应地,该实例以及相同类型的任何其他实例将会自构造时刻起不可变。将所有这种实例归类为不可变的能力是有利的,因为不可变性质允许由于资源访问安全而通常不会被允许的动作。
-
公开(公告)号:CN105103134A
公开(公告)日:2015-11-25
申请号:CN201480004057.7
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: M·塔耶费尔 , J·于 , J·J·达菲 , S·E·特洛布里奇 , A·D·布罗姆菲尔德
IPC: G06F11/36
CPC classification number: G06F11/0772 , G06F8/4442 , G06F11/3612
Abstract: 处理程序执行中的错误。该方法包括标识包括多个显式地标识出的失败状况的集合。该方法进一步包括确定已发生了这些显式标识出的失败状况中的一个或多个。结果,该方法进一步包括停止预定的第一计算执行范围,并向另一计算范围通知该失败状况。一替换实施例可在计算环境中实施,并包括处理错误的方法。该方法包括标识包括多个显式地标识出的失败状况的集合。该方法进一步包括确定已发生了不在该包括多个显式地标识出的失败状况的集合中的错误状况。作为结果,该方法进一步包括停止预定的第一计算执行范围,并向另一计算范围通知该失败状况。
-
公开(公告)号:CN105074667A
公开(公告)日:2015-11-18
申请号:CN201480004082.5
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: G·S·凯岑伯格 , J·P·帕森斯 , A·D·布罗姆菲尔德 , J·J·达菲 , K·J·克瓦利纳
IPC: G06F9/52
CPC classification number: G06F17/30286 , G06F9/52
Abstract: 特定类型的类型定义,以使相应的对象图的不同部分可以具有在实例化期间被分配给那些部分的不同许可。这允许结构化许可被应用于那些已定义类型的对象图的实例化,从而允许对于对象图的哪些部分实施哪些访问许可进行细粒度控制。在一些实施例中,对象图的不同实例化可以不同地应用许可。
-
-
-
-
-
-
-
-