Partie II S - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Partie II S

Description:

Pour un langage de programmation, elle permet de pr voir le comportement du programme ... Affectation : 1. (e, m) (e', m ') congruence (id := e, m) (id := e', m ') calcul := 2. ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 24
Provided by: pierreyves
Category:

less

Transcript and Presenter's Notes

Title: Partie II S


1
Partie IISémantique
2
Quest-ce que cest ?
  • La sémantique donne le sens dun langage
  • Pour un langage de programmation, elle permet de
    prévoir le comportement du programme
  • Pour un langage séquentiel, on suppose que le
    seul comportement observable est le résultat
    final.

3
A quoi ca sert ?
  • La sémantique permet de
  • décider ce que doit faire un programme dans des
    cas complexes
  • calculer si des programmes sont équivalents, ce
    qui permet à un compilateur de remplacer lun par
    lautre.
  • dériver la plupart des analyses de programmes
  • construire des compilateurs fiables

4
Types de sémantique
  • Sémantique opérationnelle décrit comment un
    programme peut sexécuter
  • Sémantique dénotationnelle donne un objet
    (p.ex. une fonction des données vers les
    résultats) comme sens dun programme
  • Sémantique axiomatique donne des règles pour
    raisonner sur les programmes

5
Liens
  • les 3 types de sémantique ont leur utilité
  • la sémantique opérationnelle facilite la
    construction de compilateurs
  • la sémantique dénotationnelle donne les concepts
    du langage
  • la sémantique axiomatique est la plus utile pour
    les programmeurs
  • On peut passer de lune à lautre en démontrant
    leur équivalence.

6
SémantiqueOpérationnelle Structurée
7
Sémantique opérationnelle
Sémantique opérationnelle on donne le sens du
programme en donnant un ensemble dexécutions
possibles. Avantages intuition claire
facilité de construire un interpréteur
traitement du non-déterminisme - Inconvénients
fréquents - non compositionnel on ne peut
pas donner de sens à certaines
parties - peu abstrait difficile de prouver
que 2 programmes sont
équivalents. difficile de construire un
compilateur optimisant.
8
Sémantique Opérationnelle Structurée
  • On évite les inconvients habituels en ajoutant
  • Compositionalité On donne des règles
    dinférences qui donnent les exécutions possibles
    en fonction de celles des composants.
  • Abstraction On ajoute des règles de similarités
    disant quelles exécutions sont équivalentes.

9
Système de déduction
  • Une règle dinférence est de la forme

prémisses conclusion
Si on a prouvé F1 ... Fn on peut déduire F0
. (Ici les Fi décriront des exécutions
possibles) - Sil ny a pas de prémisses, on
lappelle un axiome. - Une règle peut contenir
des méta-variables càd des variables qui
représentent nimporte quel texte dune catégorie
syntaxique donnée. On lappelle alors un
schéma de règle. - Une preuve est un arbre fini
composé de règles dinférences elle a une
conclusion à la racine, appelée théorème. - La
théorie dun système de déduction est lensemble
des théorèmes.
10
Exemple un système de déduction pour la syntaxe
  • Les formules sont de la forme T VN (le texte T
    dérive de VN).
  • Chaque règle non contextuelle, par exemple
  • S if E then S1 else S2
  • peut se traduire en une règle dinférence
  • E expression S1 instruction
    S2 instruction
  • if E then S1 else S2 instruction

11
Exemple déduction syntaxique
Une preuve dans ce système est un arbre
syntaxique
Les règles dinférences peuvent aussi vérifier
des conditions de contexte, p.ex. les types
12
Sémantique Opérationnelle Structurée Définition
  • Les formules qui nous intéressent
  • e1 ? e2
  •  dans létat e1 par un pas dexécution on arrive
    dans létat  e2

13
Etats
  • Les états doivent contenir l information
    nécessaire à l exécution
  • la valeur des variables
  • le point dexécution dans le programme (ici, on
    le représente par la partie du programme restant
    à exécuter)
  • létat de la pile de récursion
  • etc.

14
Exemple expressions Pascal
  • on ne traite dabord que des expressions sans
    variables et sans effet de bord, donc la mémoire
    nest pas (encore) nécessaire.

15
Règles
  • de congruence on peut simplifier n importe
    quelle sous-expression en Pascal
  • de calcul pour chaque opérateur Pascal, on
    donne des règles pour calculer la valeur du
    résultat à partir de la valeur des arguments
  • par exemple
  • not true ? false
  • not false ? true

16
Exemple
  • 7 (4 5) ? 7 20 ? 27
  • le premier pas est la règle de congruence pour le
    2ème argument sa prémisse est justifiée par la
    règle de calcul pour .
  • le second pas est le calcul de .

17
Expressions avec mémoire
  • Un état a maintenant 2 composantes
  • lexpression à évaluer
  • létat de la mémoire une fonction
    Identificateur ? Valeur
  • de congruence on peut simplifier une
    sous-expression
  • de calcul
  • (not true, m) ? (false, m)
  • (not false, m) ? (true, m)
  • de recherche de valeur en mémoire (id, m) ?
    (m(id) , m)

18
Exemple expression
recherche
congruence
congruence
calcul
congruence
recherche
congruence
congruence
calcul
congruence
calcul
Donc lexpression sévalue à 30 en 5 étapes.
19
Instructions
Affectation 1. (e, m) (e,
m ) congruence (id e, m) (id e,
m ) calcul 2. (id n, m) (skip,
update (id, n, m))
instruction vide Conditionnelle 1.
(e, m) (e, m) (if e then
S1 else S2m) (if e then S2 else S2m) 2.1
(if true then S1 else S2, m) (S1, m) 2.2
(if false then S1 else S2, m) (S2,
m) abréviation (if e then S1, m)
(if e then S1 else skip, m) Boucle (while e
do S, m) ? (if e then begin S while e do S end,
m) Séquence (S1, m) ? (S 1,
m) (S1 S2, m) ? (S1 S2, m) (skip S,
m) ? (S, m)
e expr id identificateur n const
20
Système de transitions
  • Les règles de la SOS définissent une machine à
    états infinis, quon appelle aussi un système de
    transitions

21
Questions importantes
  • 1. Il y a-t-il plusieurs suites de flèches
    partant dun même état ? (déterminisme)
  • 2. Certaines de ces suites sont-elles infinies ?
    (terminaison)
  • 3. Aboutissent-elles toutes au même état ?
    (confluence)
  • 4. Quelle forme ont les états finals ? Les état
    finals corrects ?
  • Déf. C final il ny a pas de C C ? C
    (forme normale)
  • 5. Les flèches préservent-elles les types ?

22
Equivalence sémantique
  • La SOS détaille les calculs, donc peu de
    programme sont équivalents
  • Deux programmes P,Q sont équivalents ssi
  • ils mènent aux mêmes états finaux
  • ils bouclent dans les mêmes circonstances

23
Exemple
if e then S1 else S2 if not(e) then
S2 else S1 1. Si (e, m) (true, m) alors 1)
(if e then S1 else S2, m) (if true then
S1 else S2, m) (S1, m) 2) (e, m)
(true, m) (not(e), m) (not(true),
m) (false, m) (if not(e)
then S2 else S1, m) (if false then S2
else S1, m) (S1, m) 2. si (e, m)
(false, m) preuve symétrique
congruence 2.1 congruence calcul
not congruence 2.2.
Write a Comment
User Comments (0)
About PowerShow.com