フェントン` sデータマーク機


  Share  
|


フェントン作成の抽象機械と呼ばれるマークのマシンのデータの取り扱いを勉強し、実行時間の流れを暗黙のうちにします。 各変数に関連付けられたこのマシンのセキュリティクラス、またはタグとなります。 フェントンするタグが含まれても、プログラムカウンタ( pc )です。

封入して、パソコンの許可を治療するフェントン暗黙の明示的なフローの流れとしては、枝のためには単にパソコンを割り当てます。 彼は定義の意味のマシンのデータをマークします。 は、以下の議論は、スキップするという意味ではありませんして命令を実行すると、プッシュ( × 、 × )の手段を押すと変数xとそのセキュリティ×クラスに入ると、プログラムスタック、およびポップ( × 、 × )のトップの値と手段をポップクラスのセキュリティプログラムスタックをオフに割り当てるとして× ×となった。

フェントン5つの手順を定義します。 間の関係の手順を実行すると、クラスの変数は、以下のとおりです。

  1. 加算命令

      × : = × + 1 

    と等価

     パソコンの場合< =次に× × : = × + 1 ;他のスキップ 

  2. 条件命令

     もしx = 0次に他の後藤× n : = × 1 

    と等価

     もしx = 0の場合(プッシュ(パソコン、パソコン) ;パソコン= lub (パソコン、 × ) ;パソコン: = nの; )他のパソコンの場合( < (次に× × = : = × 1 ; )他のスキップ) 

    この支店、および押し、パソコンのセキュリティおよびそのクラスに入ると、プログラムスタックします。 (常として、このパソコンは、インクリメントので、逮捕されたときは、次のif文の命令が実行されます。 )これをキャプチャし、パソコンからの情報が含まれ× (具体的には、そのxは0 )中に次の後藤です。

  3. 戻り

     戻り 

    と等価

     ポップ(パソコン、パソコン) ; 

    この声明は、以下のコントロールを返し、最後のif文です。 の流れを制御するために着いたが、この声明の中で、パソコンについての情報が含まれませんx 、および、古いクラスに復元することができます。

  4. 分岐命令

     もし' n × = 0次に後藤他× : = × 1 

    と等価

     もしx = 0の場合(もしx < = (次にパソコンパソコン: = nの; )他のスキップ( )他のパソコンの場合< (次に× × = : = × 1 ; )他のスキップ) 

    この枝を保存せずに、パソコンスタックしています。 枝が発生した場合は、パソコンは、より高いセキュリティの条件クラス変数xので、 xを追加し、パソコンからの情報に変更はありません、パソコンのセキュリティクラスです。

  5. halt命令

     中止 

    と等価

     次に空のプログラムの実行を中止する場合スタック 

    プログラムスタックを空にしていることを確認し、ユーザーに情報を入手することはできませんスタックを見ることによって、プログラムが停止した後、プログラム(例えば、声明を決定した場合の最終撮影)します。

例:次のプログラムを考慮して、最初の×が含まれ0または1です。

  1 。 もしx = 0次に後藤4他× : = × 1 2 。 もしz = 0次に後藤6他のz : = z 1 3 。 中止4 。  z : = z + 1 5 。 戻り6 。  y : = y + 1 7 。 戻り 

このプログラムのコピーの値xをy. × = 1当初と仮定します。 以下の表は、メモリの内容は、パソコンのセキュリティクラスの各ステップでは、証明書とそれに対応するチェックします。

× y z パソコン パソコン スタック 認定チェック
1 0 0 1 低い
0 0 0 2 低い 低< = ×
0 0 0 6 × ( 3 、低)
0 1 0 7 × ( 3 、低) パソコン< = y
0 1 0 3 低い

フェントンのマシンを処理されたエラーを無視してください。 と仮定し、上のプログラムでは、 y < = xの それから、 5ステップでは、認証が失敗した場合のチェック(パソコンのために= × )します。 このため、割り当てはスキップされる、との末尾y = 0にかかわらず、 xの値 しかし、マシンのレポートにエラーが発生している場合は、エラーメッセージが表示さに知らせるの失敗により、ユーザーの認証を確認しようという意味だが、プログラムを実行する手順6にします。 場合にのみ行うことができましたので、枝のステップ2で、という意味でz = 0 。 もしz = 0 、その後、他の支店の声明1できませんでした取ってきた、という意味で× = 0最初にします。

このタイプの控除を防ぐため、フェントンのマシンに直面し続けて実行し、エラーが発生する原因しかし、それは無視した声明に違反しています。 この要件を満たしています。 プログラムの中断、または表示されるように、例外を作成し、ユーザーの情報が流れても原因に対するポリシーをご覧ください。

この問題を報告してエラーが低いクリアランスを持つユーザーの情報よりもエラーの原因となった情報から推測することができていますが、エラーと知っています。 エラーが発生した場合は、ログインしたような方法で、ログのエントリは、アクションのログを、目に見えるだけでは十分なクリアランスを持っている人は、そのポリシーに違反しませんが発生します。 しかし、その場合には、ユーザーが十分に高いクリアランス、次に参照して、ユーザーがポリシーに違反せずにエラーが発生しました。 そのため、エラーが発生し、ログインすることができ、システム管理者(または他の適切なユーザー)は、たとえそれをユーザーに表示することはできません誰がプログラムを実行しています。 似たようなコメントに適用されない例外アクションなど、異常終了します。

これは、記事を追加したフレッドフォスター

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions