Question: As a reminder, here is the grammar for lambda calculus expressions: Ex^x.E|EE|(E) The rules for parsing with this ambiguous) grammar are: Application is left associative,


As a reminder, here is the grammar for lambda calculus expressions: Ex^x.E|EE|(E) The rules for parsing with this ambiguous) grammar are: Application is left associative, so "E_E2E2 is parsed as "(E1 E2)E3" Abstraction (2) extends as far right as possible, so "\x.EjE2" is parsed as Xx.(E1 E2)" E= (E) is the grouping rule, so (Ax.E1 E2) Ez is parsed as (Ax.(E1E2))(E3) 3. (12 points) Apply B-reduction to each of the following l-expressions until no more beta reductions can be applyed: (a) (1x.x2)(Xy.yu) (b) (4.2.(y.(xy))y)2 (c) ((1.0.xx)\y.y) (Ay.y) (d) ((Az.Ay. (xy))(Ay.y))w) As a reminder, here is the grammar for lambda calculus expressions: Ex^x.E|EE|(E) The rules for parsing with this ambiguous) grammar are: Application is left associative, so "E_E2E2 is parsed as "(E1 E2)E3" Abstraction (2) extends as far right as possible, so "\x.EjE2" is parsed as Xx.(E1 E2)" E= (E) is the grouping rule, so (Ax.E1 E2) Ez is parsed as (Ax.(E1E2))(E3) 3. (12 points) Apply B-reduction to each of the following l-expressions until no more beta reductions can be applyed: (a) (1x.x2)(Xy.yu) (b) (4.2.(y.(xy))y)2 (c) ((1.0.xx)\y.y) (Ay.y) (d) ((Az.Ay. (xy))(Ay.y))w)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
