A language for biochemical systems: design and formal specification. This paper introduces a Language for Biochemical Systems (LBS) which combines rule-based approaches to modelling with modularity. It is based on the Calculus of Biochemical Systems (CBS) which affords modular descriptions of metabolic, signalling and regulatory networks in terms of reactions between modified complexes, occurring concurrently inside a hierarchy of compartments and with possible cross-compartment interactions and transport. Additional features of LBS, targeted towards practical and large-scale applications, include species expressions for manipulating large complexes in a concise manner, parameterised modules with a notion of subtyping for writing reusable modules, and nondeterminism for handling combinatorial explosion. These features are demonstrated through examples. A formal specification of LBS is then given through an abstract syntax and a general semantics which is parametric on a structure pertaining to the specific choice of target semantical objects. Examples of such structures for the specific cases of Petri nets, coloured Petri nets, ODEs and continuous-time Markov chains are also given.