For programmers, the most familiar form of encoding is the compilation of a programming language into machine code or byte-code.
Compilation of TeX or LaTeX documents to PostScript are also commonly encountered encoding processes.
Some high-level preprocessors, such as OCaml's Camlp4, also involve encoding of a programming language into another.
Preservation of compositions is useful insofar as it guarantees that components can be examined either separately or together without "breaking" any interesting property.
In particular, in the case of compilations, this soundness guarantees the possibility of proceeding with separate compilation of components, while completeness guarantees the possibility of de-compilation.
The completeness property is useful when language B is used to study or test a program written in language A, possibly by extracting key parts of the code: if this study or test proves that the program terminates in B, then it also terminates in A.
In programming languages, typical observables are results of inputs and outputs, by opposition to pure computation.
In a description language such as HTML, a typical observable is the result of page rendering.
As in previous cases, soundness is important for compilation, while completeness is useful for testing or proving properties.