• 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 [email protected]

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

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...

É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

[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

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

(a) Les deux fonctions sont définies

[r]