Machine De Marque De Données De Fenton`s
Fenton a créé une machine abstraite appelée la machine de marque de données pour étudier la manipulation des écoulements implicites au temps d'exécution. Chacun variable dans cette machine a eu une classe associée de sécurité, ou l'étiquette. Fenton a également inclus une étiquette pour le compteur de programme (PC). L'inclusion du PC a permis à Fenton de traiter des écoulements implicites en tant qu'écoulements explicites, parce que les branches sont simplement des tâches au PC. Il a défini la sémantique de la machine de marque de données. Dans la discussion suivante, le saut signifie que l'instruction n'est pas exécutée, push(x, x) signifie pour pousser le x variable et sa classe de sécurité X sur la pile de programme, et pop(x, x) des moyens de sauter la valeur et la classe supérieures de sécurité outre de la pile de programme et de les assigner à x et à x, respectivement. Fenton a défini cinq instructions. Les rapports entre l'exécution des instructions et les classes des variables sont comme suit.
La machine de Fenton manipule des erreurs en les ignorant. Supposez cela, dans le programme ci-dessus, y < = x. Alors à la cinquième étape, le contrôle de certification échoue (parce que PC = x). Ainsi, la tâche est sautée, et à l'extrémité y = 0 indépendamment de la valeur de x. Mais si la machine rapporte des erreurs, le message d'erreur informant l'utilisateur de l'échec du contrôle de certification signifie que le programme a essayé d'exécuter l'étape 6. Il pourrait faire ainsi seulement s'il avait pris la branche dans l'étape 2, signification cette z = 0. Si z = 0, alors la branche d'autre du rapport 1 ne pourrait pas avoir été pris, signification cette x = 0 au commencement. Pour empêcher ce type de déduction, la machine de Fenton continue de s'exécuter face aux erreurs, mais ignore le rapport qui causerait la violation. Ceci répond aux exigences. Avorter le programme, ou créer une exception évidente à l'utilisateur, ferait également couler l'information contre la politique. Le problème avec le reportage des erreurs est qu'un utilisateur avec le dégagement inférieur que l'information causant l'erreur peut déduire l'information de savoir qu'il y a eu une erreur. Si l'erreur est entrée une telle manière dont les entrées dans la notation, et l'action de la notation, sont évidentes seulement à ceux qui ont à dégagement proportionné, alors aucune violation de la politique ne se produit. Mais si le dégagement de l'utilisateur est suffisamment haut, alors l'utilisateur peut voir l'erreur sans violation de la politique. Ainsi, l'erreur peut être notée pour l'interface gestionnaire (ou tout autre utilisateur approprié), même si elle ne peut pas être montrée à l'utilisateur qui exécute le programme. Les commentaires semblables s'appliquent à n'importe quelle action d'exception, telle que la fin anormale. c'est un article supplémentaire par Fred Foster
|
|||
|