|
|
|
|
|
by h_sakurai
1515 days ago
|
|
eval(I,I):-integer(I). eval(E1+E2,I):- eval(E1,I1),eval(E2,I2), I is I1+I2. eval(E1E2,I):- eval(E1,I1),eval(E2,I2), I is I1I2. :- eval(12+34,R),writeln(R),R=14. :- halt. Very simple Operational Semantics. this mean syntax e ::= i | e+e | e * e evaluation rule -------------- (E-Int) i1-->i1 e1-->i1 e2-->i2 i is i1+i2 ------------------- (E-Plus) e1+e2 --> i e1-->i1 e2-->i2 i is i1i2 ------------------- (E-Times) e1*e2 --> i |
|