-
公开(公告)号:CN105144098B
公开(公告)日:2018-11-13
申请号:CN201480003944.2
申请日:2014-01-03
Applicant: 微软技术许可有限责任公司
Inventor: J·J·达菲 , J·P·帕森斯 , M·辛兹 , A·D·布罗姆菲尔德 , K·J·克瓦利纳
IPC: G06F8/30
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: 本发明描述了可以在系统编程中提升安全性的语言扩展,在其中在该类型的所有实例不可变的情况下,整个类型可以被声明为不可变。不可变类型声明自动地使该类型的任何实例被视为不可变,并且自动使实例的所有直接或间接可达的成员(例如,字段、方法、属性)也被视为不可变。而且,允许实例的字段分配的任何构造时间引用不被允许超出实例变得对创建者可访问的点而继续存在。相应地,该实例以及相同类型的任何其他实例将会自构造时刻起不可变。将所有这种实例归类为不可变的能力是有利的,因为不可变性质允许由于资源访问安全而通常不会被允许的动作。
-
公开(公告)号: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)每一输入自变量不可改变或者表示没有指向对象图的外部可变的引用,并且没有引用外部对象的内部可变的引用的对象图,则将特定属性分配到返回的引用。相应地,如果返回的引用是可写入的(如通过对于可执行组件评估声明代码或调用代码所确定的),返回的引用随意具有给它分配的任何访问权限,也可以被分配到隔离的存储器位置,但是,这样的分配将导致返回的引用丢失特定属性。
-
-