CSE 428
Midterm 1 Solution
E ::= E "+" F | E "-" F | F
F ::= F "*" F | G
G ::= "-"G | H
H ::= N | Id | "(" E ")"
a) x * (y--5) : unambiguous+x * y : cannot be generatedx * y + z * v : unambiguous(x + z) * -u * (v) : ambiguous-(-(x + y)) : unambiguous senv[f:t1->t2][g:t3->t4][x:t1] |- Ef:t2
senv[f:t1->t2][g:t3->t4][y:t3] |- Eg:t4 senv[f:t1->t2][g:t3->t4] |- e:t
----------------------------------------------------------------------------
let f(x:t1):t2 = Ef; g(y:t3):t4 = Eg in e : t