芬顿` s数据标记机
芬顿创造了一个抽象的机器被称为数据标记机,以研究处理隐流于执行时间。 每个变量,在这种机器进行了相关的安全一流的,或者标签。 芬顿还包括一个标签,为计划柜(筹委会) 。
列入筹委会允许芬顿治疗隐流动作为明确的流向,因为支部是仅仅转让至个人电脑。 他确定了语义数据标记机。 在随后的讨论中,跳过,即指令将不会被执行,推(十, x )的手段来推动变量x和它的安全阶级x走上程序栈,并弹出(十, x )的手段,弹出最高值和安全阶级小康程序栈,并指定他们到第十和第十章,分别为。
芬顿确定了五个指示。 关系执行该批示和班级的变数如下。
增量指令
十: = x的+ 1
相当于
如果pc < = x的则x : = x的+ 1 ;否则跳过
有条件的指示
如果x = 0 ,然后转到n ,否则十: = × 1
相当于
如果x = 0 ,然后(推(个人电脑,个人电脑) ;电脑= lub (筹委会, x )的;个人电脑: =氮; )否则(如果pc < = x的,然后(十: = × 1 ; )否则跳过)
这个分行,并把个人电脑和其安全阶级走上程序栈。 (按照惯例,筹委会是递增,所以当它出现,指示后,如果声明是运行) 。这抓住了个人电脑的资料,其中载有从x (具体来说,即x是0 ) ,而继转到。
返回
返回
相当于
流行音乐(个人电脑,个人电脑) ;
这个回报率控制在声明后,如果最后声明。 因为流动的管制方式已经到了该声明中,个人电脑已不再包含的信息x ,和旧阶级才能恢复。
该科教学
如果' x = 0时,然后转到n ,否则十: = × 1
相当于
如果x = 0则(如果x < =电脑,然后(电脑: =氮; )否则跳过)否则(如果pc < = x的,然后(十: = × 1 ; )否则跳过)
这个党支部,没有节省筹委会对栈。 如果该分支机构的情况下,筹委会是在一个较高的安全级的,比有条件的变数x ,因此增加信息从x至个人电脑,并不能改变个人电脑的安全,一流的。
停止指示
停止
相当于
如果程序栈空,然后停止执行
节目栈为空,确保用户不能获得有关资料看节目栈后,该计划已停止了(例如,以确定哪些,如果声明是在去年采取的) 。
例如:考虑下列程序,其中x最初包含0或1 。 1 。 如果x = 0 ,然后转到四否则十: = × 1 2 。 当z = 0 ,然后转到六日否则詹: = z 1 3 。 停止4 。 詹: =玉米素+ 1 5 。 返回6 。 y : = y的+ 1 7 。 返回 这一计划的副本,价值十耀 假定x = 1初期。 下表显示的内容存储,安全类筹委会的每一步,以及相应的认证检查。 | x | y | z | 个人电脑 | 个人电脑 | 栈 | 认证检查 | | 一 | 0 | 0 | 一 | 低 | | | | 0 | 0 | 0 | 二 | 低 | | 低< = x的 | | 0 | 0 | 0 | 六 | x | ( 3 ,低) | | | 0 | 一 | 0 | 七日 | x | ( 3 ,低) | 筹委会< = y的 | | 0 | 一 | 0 | 三 | 低 | | |
|
芬顿的机器处理错误,忽视这些问题。 假设说,在以上程序中, y < =十。 然后在第五步,验证检查失败(因为电脑=十) 。 因此,转让,是不可逾越的,并于去年底为y = 0不论价值十。 不过,如果机报告错误,错误信息,通知用户失败的验证检查手段,这一计划试图去执行第6步。 它可以这样做,只有当它采取了分支机构,在第2步,即z = 0 。 当z = 0 ,那么,其他分行的报表1 ,可以在没有得到,即x = 0的最初。
为防止这种类型的演绎,芬顿的机器继续执行,在面对错误,但忽略声明中表示,将会造成侵犯。 这满足了这些要求。 流产程序,或者创建一个例外有形给用户,也将造成信息流,对政策。
问题报告的错误是一个用户以较低手续比资料造成的误差,可以推断出该资料得知有一种错误。 如果误差是登录在这样一种方式参赛作品在日志,以及行动的伐木,都是看得见,只有那些有足够的净空,就不会违反政策出现。 但是,如果清除该用户是够高的话,用户可以看到误差,没有违反政策。 因此,误差可以登录为系统管理员(或其他适当的用户) ,即使它不能显示给用户如运行程序。 类似的意见,适用于任何例外的行动,例如非正常终止。