• Aucun résultat trouvé

G´en´eration de codes Machines abstraites pour les langages fonctionnelles TD

N/A
N/A
Protected

Academic year: 2022

Partager "G´en´eration de codes Machines abstraites pour les langages fonctionnelles TD"

Copied!
2
0
0

Texte intégral

(1)

G´en´eration de codes

Machines abstraites pour les langages fonctionnelles TD

Fr´ed´eric Gava gava@u-pec.fr

1 Extention par la conditionelle (facile)

On souhaite ´etendre le langage avec la possibilit´e de faire une conditionnelle.

Le langage mini-ML est donc le suivant :

e ::= x |(funx→e) |(e e)

| const |op|(letx=ein e)

| if etheneelsee |...

Exercice 1 (S´emantiques)

Donnez les r`egles s´emantiques de la conditionelle pour les s´emantiques petits pas (avec substitution explicite) et grands pas. N’oubliez pas les r`egles co-inductives (pour les

´

evaluations infinies).

Exercice 2 (Etendre la VM´ )

Ajoutez des instructions n´ecessaires pour ´evaluer les conditionnelles. ´Etendre l table de transition de la VM ainsi que la fonction de compilation.

Exercice 3 (Preuve de correction)

Faites les preuves de correction partielle et totale pour votre extentions avec la s´emantique grandspas. Ne faire que les cas li´es `a votre extension, les autres cas restant identiques.

2 Extention par la conditionelle (plus difficile)

On souhaite ´etendre le langage avec la possibilit´e de faire de d´efinir des fonctions r´ecurives.

Le langage mini-ML est donc le suivant :

e ::= x |(funx→e) |(e e)

| const |op|(letx=ein e)

| (fun recf x→e) |...

Remarquez l’utilisation de 2 arguments : le premier est le nom de la fonction utilis´ee pour les appels r´ecurifs ; le second est l’argument de la fonction comme pour les fonctions non r´ecurives.

1

(2)

Exercice 4 (S´emantiques)

Donnez les r`egles s´emantiques pour les fonctions r´ecurives avec les s´emantiques petits pas (avec substitution explicite) et grands pas. N’oubliez pas les r`egles co-inductives (pour les ´evaluations infinies).

Exercice 5 (Etendre la VM´ )

Ajoutez des instructions n´ecessaires pour ´evaluer les fonctions r´ecurives. ´Etendre l table de transition de la VM ainsi que la fonction de compilation.

Exercice 6 (Preuve de correction)

Faites les preuves de correction partielle et totale pour votre extentions avec la s´emantique grandspas. Ne faire que les cas li´es `a votre extension, les autres cas restant identiques.

2

Références

Documents relatifs

(a) Les deux fonctions sont définies

[r]

[r]

En raisonnant sur les distances de Hamming, montrez que ce type de code permet de détecter et de corriger toute erreur simple dans un message, ainsi que de détecter toute

Deux types de langages seront ´ etudi´ es par la suite.. Plus pr´ ecis´ em´ ent, A ∗ est le plus petit ensemble v´ erifiant les deux propri´ et´ es ci–dessus...

[r]

1 3- La lampe étant branchée sur une prise dont la tension est de 230V, elle doit donc choisir une lampe de tension nominale de 230V, c'est à dire la lampe n°3 1 4- Si Justine

Étant donné que cette rente n’est jamais très élevée, une dépendance trop longue pour- rait épuiser la totalité du patrimoine de la personne dépendante et lui interdire de