Formal semantic descriptions have many potential pragmatic advantages over informal descriptions. Unfortunately, however, the major frameworks for formal semantics do not support component-based description of programming languages. Different languages often have many constructs in common, but the corresponding parts of their semantic descriptions are not generally reusable. The lack of reusable components is one of the reasons why it has been an immense effort to give a semantic description of any larger language.Here, we consider two semantic frameworks that do support component-based language description: action semantics, and a modular variant of structural operational semantics (MSOS). We analyse how the semantics of individual constru...