Table of Contents

LANGAGES ET TRADUCTEURS – Chapitre 8 Jean-François Monin, 2021

1 Rappels sur la SN (grands pas)

1.1 Conception

  • conçue dans le même esprit que la sémantique fonctionnelle mais en utilisant une relation ternaire ;
  • chaque instruction est vue comme une transformation entre – un état initial (avant l'exécution de l'instruction) ; – un état final (après l'exécution).

1.2 Limites

1.2.1 Terminaison

  • Difficile de conclure quelque chose au sujet des programmes qui "bouclent" (ne terminent pas).
  • Pourtant l'état évolue ; il pourrait y avoir d'autres effets de bord observables.

1.2.2 Interruptions

  • Difficile de conclure quelque chose au sujet des programmes qui "plantent violemment" (ex. division pr zéro) ;
  • gestion des interruptions en général

1.2.3 Composition parallèle (entrelacement)

  • On ne peut pas décrire tous les comportements souhaitables.

1.3 Autre nom : sémantique opérationnelle à grand pas

2 Sémantique opérationelle structurelle (ou à petits pas), SOS

2.1 Principe

  • Encore une relation inductive pilotée par l'instruction à exécuter.
  • Mais ici, on décrit une relation entre l'état courant et l'état suivant après exécution d'une étape élémentaire dite aussi petit pas par ex. une affectation) de l'instruction courante.
  • À l'issue d'un petit pas, on aboutit à une nouvelle configuration composée : – du nouvel état – du reste du programme à exécuter ; ce dernier est représenté par un AST, amis on peut le penser comme un compteur ordinal (program counter).
  • Autrement dit, une transition (petit pas) transforme une configuration en une nouvelle configuration.
  • L'exécution complète d'un programme consiste à répéter des petits pas (fermeture transitive de SOS1)
  • On a ainsi accès à l'état mémoire obtenu après 1, 2,… n petits pas.

2.2 Configurations

Deux possibilités en fait :

  • configuration intermédiaire Inter = "en cours de calcul"
  • configuration Final "calcul terminé"

Pas de calcul partant de Final, pas même de petit pas. Petit pas : état -> AST -> configuration

2.3 Fichiers

3 Arbres de SOS

3.1 Exemple

P1 = "while not (i=0) do {i := i-1; x := 1+x}".

Author: jf

Created: 2021-11-30 mar. 17:52

Validate