• Aucun résultat trouvé

S´erie d’exercices #4½ IFT-2035 October 1, 2021

N/A
N/A
Protected

Academic year: 2022

Partager "S´erie d’exercices #4½ IFT-2035 October 1, 2021"

Copied!
1
0
0

Texte intégral

(1)

S´erie d’exercices #4 ½

IFT-2035 October 1, 2021

Un ´ evaluateur qui manque de “fun”

type Var = String

-- Expressions du code source en forme ASA.

data Exp = Enum Int -- Une constante

| Evar Var -- Une variable

| Elet Var Exp Exp -- "let X = E1 in E2"

| Ecall Exp Exp -- Un appel de fonction -- Valeurs renvoy´ees.

data Val = Vnum Int -- Un nombre entier

| Vprim (Val -> Val) -- Une primitive elookup x ((x1,v1):env) =

if x == x1 then v1 else elookup x env eval env (Enum n) = Vnum n

eval env (Evar x) = elookup env x eval env (Elet x e1 e2) =

let v = eval env e1 in eval ((x,v):env) e2 eval env (Ecall fun actual) =

case eval env fun of

Vprim f -> f (eval actual)

Soit les d´eclarations ci-dessus utilis´ees pour un interpr´eteur:

1. Donner le type des deux fonctions. V´erifier que le code est typ´e correcte- ment et corriger les ´eventuelles erreurs.

2. ´Etendre ce petit langage avec la possibilit´e de d´efinir de nouvelles fonc- tions. I.e. Ajouter un constructeur d’expressionElambda, un constructeur de valeur correspondante Vlambda, ainsi que les cas pour g´erer ces con- structeurs danseval.

1

Références

Documents relatifs

Proton, créé en 1983, naît de la volonté du Premier Ministre, le Dr Mahathir, de créer une industrie automobile nationale, autant pour des raisons économiques que pour des raisons

Ces fonctions prennent deux arguments qui sont pass´ es de mani` ere

Bien sˆ ur, pour ˆ etre utile l’arbre doit ˆ etre maintenu dans l’ordre: toutes les cl´ es dans la branche de gauche d’un Node doivent ˆ etre plus petites que la cl´ e du

Comment faut-il changer ce code pour que l’´ evaluateur reproduise les r` egles de port´ ee utilis´ ees par le langage Haskell (i.e. que votre ´ evaluateur implante la port´

Votre première tâche sera d'écrire une fonction s2l qui va éliminer le sucre syntaxique, c'est à dire faire l'expansion des formes de gauche (présumément plus pratiques pour

Cette villa de plain-pied dispose de différentes entrées. Dès votre entrée, vous faites face à un gigantesque espace de vie de plus de 80 m2. Il comprend un salon, une cuisine,

Participation au projet de déploiement de la plate-forme LANDESK Prise de main à distance avec Dameware NT, VNC, LANDESK Support niveau 2 auprès des utilisateurs (1200 postes

Origano matt lacquered base unit with central groove, MLL 0.7 washbasin and Cristalplant mirror, 2.8 cm thick, with top and bottom LED backlighting on both sides... 46