A code in which a fixed number of source symbols are encoded into a variable number of output symbols. This variable number (the code length) may be made to depend on some property of the source symbols input to the encoder, often their relative frequency of occurrence. If a variable-length code is to be instantaneously decodable (i.e. a prefix code), it must obey Kraft's inequality. See also source coding theorem. Compare fixed-length code.