Exercice 1, q1
A↑0 → ( )
A↑1+max(h1,h2) → ( num A↑h1 A↑h2 )
Exercice 1, q2
A↑a → ( As↑a
As↑0 → )
As↑1+max(h1,h2) → num A↑h1 A↑h2 )
Exercice 1, q3
A↑V_MAX ↑V_MIN → ( )
A↑min(v,m1) ↑max(v,M2) → ( num↑v A↑m1 ↑M1 A↑m2 ↑M2 ) condition : M1 ≤ v ≤ m2
Exercice 1, q4
Root → A↓V_MIN ↓V_MAX
A↓min ↓max → ( )
A↓min ↓max → ( num↑v A↓min ↓v A↓v ↓max ) condition : min ≤ v ≤ max
Exercice 2, q1-2, s1
Program → suite-inst↓{} ↑init
suite-inst↓init ↑fin → suite-inst↓init ↑init2 inst↓init2 ↑fin
suite-inst↓init ↑fin → inst↓init ↑fin
inst↓init ↑init ⋃ aff → affect↓init ↑aff ;
affect↓init ↑{nom} → idf↑nom := exp↓init
exp↓init → idf↑nom condition : nom ∈ init
exp↓init → num
---------- q2
inst↓init ↑fin → cond↓init ↑fin
cond↓init ↑init1 ⋂ init2 → if exp↓init then suite-inst↓init ↑init1 suite-cond↓init ↑init2 end ;
suite-cond↓init ↑fin → else suite-inst↓init ↑fin
suite-cond↓init ↑init → ϵ
Exercice 2, q1-2, s2
Program → suite-inst↑util ↑init condition : util = {}
suite-inst↑util1 ⋂ (util2 − init1) ↑init1 ⋃ init2 → suite-inst↑util1 ↑init1 inst↑util2 ↑init2
suite-inst↑util ↑init → inst↑util ↑init
inst↑util ↑init → affect↑util ↑init ;
affect↑util ↑{nom} → idf↑nom := exp↑util
exp↑{nom} → idf↑nom
exp↑{} → num
---------- q2
inst↑util ↑init → cond↑util ↑init
cond↑util1 ⋃ util2 ↑init1 ⋂ init2 → if exp↑util then suite-inst↑util1 ↑init1 suite-cond↑util1 ↑init1 end ;
suite-cond↑util ↑init → else suite-inst↑util ↑init
suite-cond↑{} ↑{} → ϵ