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, functions, and recursion. 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), in addition to 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.

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning