A wide-spectrum language (WSL) is a programming language designed to be simultaneously a low-level and a high-level language—possibly a non-executable specification language. Wide-spectrum languages are designed to support a programming methodology based on program refinement.
The concept was introduced by F. L. Bauer et al. in 1978:
...The program should then be developed step by step applying correctness preserving transformations.... The development process thus involves usually multiple reshapings.... Since most current programming languages do not contain all the concepts needed for the formulation of the different versions, the programmer is nowadays forced to use different languages. To avoid the transition from one language to another, it seems appropriate to have one coherent language frame covering the whole spectrum outlined above, i.e. a wide spectrum language.
The advantage of a single language rather than separate specification, high-level, and low-level languages is that the program can be incrementally refined, with intermediate versions retaining some higher-level and some lower-level constructs.
Bauer's group developed the CIP-L wide-spectrum language and the CIP-S program transformation system.