  When a new programming language appears, the syntax and intended behaviour of
its programs need to be specified. The behaviour of each language construct can
be concisely specified by translating it to fundamental constructs (funcons),
compositionally. In contrast to the informal explanations commonly found in
reference manuals, such formal specifications of translations to funcons can be
precise and complete. They are also easy to write and read, and to update when
the language evolves.
  The PLanCompS project has developed a large collection of funcons. Each
funcon is defined independently, using a modular variant of structural
operational semantics. The definitions are available online, along with tools
for generating funcon interpreters from them.
  This paper introduces and motivates funcons. It illustrates translation of
language constructs to funcons, and funcon definition. It also relates funcons
to the notation used in some previous language specification frameworks,
including monadic semantics and action semantics.
