A synchronizable

code has the property that the punctuation (comma or no comma, comma indicating that the next symbol is the beginning of a new code word) at a given position in a code symbol stream can always be determined by observing at most

code symbols in the neighborhood of the position in question. The construction of

dictionaries and the mechanization of synchronizers using nonlinear shift registers are explained in detail. Necessary and sufficient conditions for the existence of

codes with specified word lengths are derived. By allowing unequal word lengths in the code, it is demonstrated that a substantial saving in average word length and information rate can be accomplished over other recently proposed codes having synchronization capability.