• Aucun résultat trouvé

Introduction `a la th´eorie de l’informatique

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction `a la th´eorie de l’informatique"

Copied!
2
0
0

Texte intégral

(1)

Introduction ` a la th´eorie de l’informatique

R´ ep´ etition 4

Ann´ ee acad´ emique 2013-2014

1. (a) Comparer le nombre de multiplications requis pour l’´evaluation eval(subst([3∗x],[1 + [x∗x]]),2)

dans le mod`ele d’environnement et dans le mod`ele de substitution.

(b) Donner un exemple d’´evaluation n´ecessitant 6 foismoins de multi- plications dans le mod`ele d’environnement que dans le mod`ele de substitution.

(c) Donner une exemple d’´evaluation n´ecessitant 6 foisplus de multi- plications dans le mod`ele d’environnement que dans le mod`ele de substitution.

2. SoitExpe l’extension du langage des expressions d´efinie par la forme BNF suivante :

E ∈Expe ::=n|true|false|(E+E)

Informellement la s´emantique du langage est la suivante : l’addition entre deux entiers a le sens classique de l’addition. L’addition entre deux bool´eens est assimil´ee `a un “ou logique” (disjonction). Lorsqu’on veut additionner un bool´een et un nombre, le bool´een est d’abord transform´e en un nombre, 1 pourtrueet 0 pourfalse, avant d’ex´ecuter l’addition. On a donc par exemple :

3 + 4 donne 7 true+false donne true

12 +true donne 13

(a) Donnez une d´efinition r´ecursive de Expe ´equivalente `a la forme BNF.

1

(2)

(b) En vous inspirant de la s´emantique d´enotationnelle deExpdonn´ee au cours th´eorique, ´ecrivez une s´emantique d´enotationnelle deExpe. Quel en est le domaine ?

(c) En vous inspirant de la s´emantique op´erationnelle deExp, ´ecrivez les r`egles d’une s´emantique op´erationnelle de Expe.

(d) Montrez par induction structurelle que pour toute expressionE ∈ Expe, il existe une valeurv ∈N∪ {true,false}telle queE → v.

(e) Modifiez la s´emantique op´erationnelle pour ajouter un op´erateur

× dont la s´emantique serait la suivante :

— Si E1 et E2 sont des nombres, alors E1×E2 est le produit de ces deux nombres.

— Si E1 ou E2 est un bool´een, alors E1×E2 renvoie une erreur, c’est-`a-dire une valeur sp´eciale not´eeerror.

Par exemple, l’expression (1+2)×((3×false) +4) renverra une erreur.

2

Références

Documents relatifs

Dans une structure conditionnelle (If,Until,While), on peut avantageusement utiliser des bool´ eens sans sp´ ecifier sa valeur qui sera alors prise par d´ efaut ´ egale ` a

Rappelons que l’anneau des entiers de Gauss, Z[i] est euclidien, ce qui im- plique qu’il est factoriel : tout ´el´ement de cet anneau a une d’ecomposi- tion en

[r]

[r]

Attention : lisez les assertions très attentivement, leur valeur de vérité dépend de chaque détail!.

Par convention, ils sont impl´ ement´ es sous la forme de fonctions avec un nom utilisant

Par convention, ils sont impl´ ement´ es sous la forme de fonctions avec un nom utilisant

[2 pts] Ecrire une fonction Liste somme(Liste l1,Liste l2) qui ´ etant donn´ ees deux listes chaˆın´ ees L1 et L2 retourne la liste chaˆın´ ee obtenue en faisant la somme des