A language-independent specification (LIS) is a programming language specification[citation needed] providing a common interface usable for defining semantics applicable toward arbitrary language bindings.
LIS's are language-agnostic; they mitigate the risk that a certain language binding might reduce compatibility with other languages. An ideal LIS allows the language bindings to take advantage of features of a programming language uncompromisingly.
Examples of LIS include Interface description language, Simplified Wrapper and Interface Generator and Common Language Infrastructure.
Recursive transcompiling can be used to distribute a language independent specification across many different technologies, with each technology potentially keeping an authoritative description of a different part of the specification. Recursive transcompiling provides the general methodology for distributing this authoritative information through the rest of the derivative code pipeline.