By Peter Sestoft
Programming Language Concepts makes use of a useful programming language (F#) because the metalanguage within which to offer all ideas and examples, and therefore has an operational flavour, allowing sensible experiments and routines. It comprises uncomplicated thoughts resembling summary syntax, interpretation, stack machines, compilation, kind checking, and rubbish assortment thoughts, in addition to the extra complex subject matters on polymorphic varieties, variety inference utilizing unification, co- and contravariant varieties, continuations, and backwards code iteration with on-the-fly peephole optimization.
Programming Language Concepts covers sensible building of lexers and parsers, yet no longer ordinary expressions, automata and grammars, that are good coated in different places. It throws gentle at the layout and expertise of Java and C# to bolster scholars’ figuring out of those normal languages.
The examples current numerous interpreters and compilers for toy languages, together with a compiler for a small yet usable subset of C, a number of summary machines, a rubbish collector, and ML-style polymorphic variety inference. each one bankruptcy has routines in keeping with such examples.