This report specifies an observational semantics and gives an original presentation of the Byrd's box model. The approach accounts for the semantics of Prolog tracers independently of a particular implementation. Traces are, in general, considered as rather obscure and difficult to use. The proposed formal presentation of a trace constitutes a simple and pedagogical approach for teaching Prolog or for implementing Prolog tracers. It constitutes a form of declarative specification for the tracers. Our approach highlights qualities of the box model which made its success, but also its drawbacks and limits. As a matter of fact, the presented semantics is only one example to illustrate general problems relating to tracers and observing processes. Observing processes know, from observed processes, only their traces. The issue is then to be able to reconstitute by the sole analysis of the trace the main part of the observed process, and if possible, without any loss of information.
Deep Dive into Une semantique observationnelle du mod`ele des bo^ites pour la resolution de programmes logiques (version etendue).
This report specifies an observational semantics and gives an original presentation of the Byrd’s box model. The approach accounts for the semantics of Prolog tracers independently of a particular implementation. Traces are, in general, considered as rather obscure and difficult to use. The proposed formal presentation of a trace constitutes a simple and pedagogical approach for teaching Prolog or for implementing Prolog tracers. It constitutes a form of declarative specification for the tracers. Our approach highlights qualities of the box model which made its success, but also its drawbacks and limits. As a matter of fact, the presented semantics is only one example to illustrate general problems relating to tracers and observing processes. Observing processes know, from observed processes, only their traces. The issue is then to be able to reconstitute by the sole analysis of the trace the main part of the observed process, and if possible, without any loss of information.
Ce rapport présente un modèle de trace Prolog (souvent appelé "modèle des boîtes de Byrd") d'une manière originale, basée sur la notion de sémantique observationnelle (SO). Cette sémantique a été introduite dans [12] afin de rendre compte de la sémantique de traceurs indépendamment de la sémantique du processus tracé.
Ce n’est pas l’objet de ce rapport d’étudier cette sémantique. Notre objectif est de l’illustrer ici avec un exemple simple mais non trivial. Le résultat est une sémantique originale de la trace Prolog telle qu’usuellement implantée, sans tenir compte d’aucune implantation particulière ni décrire la totalité du processus de résolution. Une telle sémantique constitue également une forme de spécification formelle de traceur Prolog et permet d’en comprendre facilement quelques propriétés essentielles.
“Comprendre une trace” c’est d’une certaine manière tenter de retrouver le fonctionnement du processus tracé à partir d’un état initial connu et d’une suite d’événements de trace. Cette démarche suppose une connaissance suffisante mais non nécessairement complète du modèle de fonctionnement du processus, et de savoir relier les événements de trace à ce modèle. C’est cette démarche que nous voulons capturer avec la notion de sémantique observationnelle, de schéma de trace et de schéma de reconstruction du modèle original à partir de la trace, c’est à dire d’“adéquation” de la trace au modèle observé.
Le “modèle des boîtes” a été introduit pour la première fois par Lawrence Byrd en 1980 [3] dans le but d’aider les utilisateurs du “nouveau” langage Prolog (il fait alors référence aux implantations d’Edinburgh [13] et de Marseille [16]) à maîtriser la lecture opérationnelle du déroulement du programme. Dès les débuts, en effet, les utilisateurs se sont plaints des difficultés de compréhension du contrôle liés au non déterminisme des solutions. Même si, par la suite, d’autres modèles ont été adoptés avec des stratégies bien plus complexes1 , les quatre “ports” introduits par Byrd (Call, Exit, Redo et Fail), associés aux quatre coins d’une boîte et manipulables dans une sorte d’algèbre de poupées russes, sont restés célèbres et se retrouvent dans toutes les traces des systèmes Prolog existants.
Le modèle des boîtes de Byrd fascine par sa simplicité apparente. Toujours et souvent cité mais rarement bien expliqué, le modèle des boîtes garde l’aura des premiers essais réussis. C’est sans doute pour cela qu’il reste l’objet de publications ponctuelles mais régulières depuis 1980, comme [1] (1984), [17] (1993), [10] (2000), [11] (2003). Pour autant, il reste souvent difficile à “expliquer” parce que ses diverses définitions sont soit trop informelles, soit noyées dans une formalisation complète de la sémantique de Prolog.
Dans ce rapport nous proposons une description formelle d’une variante du modèle initial défini informellement par Byrd en 1980. L’originalité de cette description réside dans le fait que, bien que contenant les ingrédients du modèle original et limitée aux éléments de contrôle dont elle veut rendre compte (c’est à dire, sans, ou en tous cas le moins possible, faire référence aux mécanismes de choix de clauses et d’unification propres à la résolution Prolog), elle est formellement complète.
Après une introduction aux traces et leur sémantique observationnelle (sections 2 et 3), nous présentons la SO qui spécifie le modèle des boîtes (section 4) et l’extraction de la trace (section 5). Enfin nous donnons le modèle de reconstruction (section 6) ; la preuve d’adéquation est en annexe, établissant ainsi une grille de lecture possible de la trace, basée sur la SO. Notre approche met en évidence les qualités du modèle des boîtes qui en ont fait son succès, mais aussi ses défauts principaux (section 7). Elle montre aussi l’intérêt de l’approche observationnelle.
Nous donnons ici un aperçu rapide du contexte de cette étude. Pour plus de détails sur les motivations on pourra se reporter à [5] et [12] .
D’une manière générale, on veut s’intéresser à l’observation de processus dynamiques à partir des traces qu’ils laissent ou qu’on leur fait produire 2 .
On peut toujours considérer qu’entre un observateur et un phénomène observé il y a un objet que nous appellerons trace. La trace est l’empreinte reconnaissable laissée par un processus et donc “lisible” par d’autres processus. Le phénomène observé sera considéré ici comme un processus fermé (ceci concernant toutes les donnés et fonctions qu’il manipule) dont on ne connaît que la trace. La trace est une suite d’événements représentant l’évolution d’un état qui contient tout ce que l’on peut ou veut connaître de ce processus. Celle-ci peut être formalisée par un modèle de transition d’états, c’est à dire par un domaine d’états et une fonction de transition formalisant le passage d’un état à un autre. Cette sémantique sera appelée sémantique observationnelle (SO) car elle représente ce que l’on est susceptible de connaître ou de décrire du process
…(Full text truncated)…
This content is AI-processed based on ArXiv data.