Programming Language Concepts uses a functional programming
language (F#) as the metalanguage in which to present all concepts
and examples, and thus has an operational flavour, enabling
practical experiments and exercises. It includes basic concepts
such as abstract syntax, interpretation, stack machines,
compilation, type checking, and garbage collection techniques, as
well as the more advanced topics on polymorphic types, type
inference using... more...