| CSC448: Code Generation Revisited: Syntax and Operational Semantics [127/133] | ![]() ![]() ![]() |
A simple functional language with exceptions, where we assume a fixed set of exception names.
M, N ::= ...usual arithmetic and relational operators...
| x
| fun x => M (no recursive function use)
| M N
| raise E (throw in Java)
| M handle E1 => N_1 | ... | En => Nn (try-catch block in Java)
We can give an operational semantics that describes the runtime behaviour of such programs using two judgement forms: