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: