15-312 Foundations of Programming Languages
Lecture 5: A Functional Language
In this lecture we present MinML, a minimal functional language.
Besides arithmetic and boolean expressions, it only contains definitions
and recursive functions. The language is call-by-value, which means
that the arguments to a function are evaluated before being passed;
the same scheme as used in ML.
While the typing rules follow our previous schema, for the operational
semantics we define a structured operational semantics (also called
a small-step semantics), rather than an evaluation semantics. This is
because we want to easily talk about infinite computations and later
effects, which are more difficult to express in an evaluation semantics.
MinML will be the point if departure for a number of extensions
considered in the remainder of this course.