A definition of a recurrent code is given in a framework which renders it amenable to mathematical analysis. Recurrent codes for both independent and burst errors are considered, and a necessary and sufficient condition for either type of error correction is established. For burst-error-correcting codes, the problem treated is (for a fixed burst length and redundancy) the minimization of the error-free distance ("guard space") required between bursts. A lower bound is obtained on the guard space, and in certain cases, codes which realize this bound are given. A general code which is close to the lower bound in many cases is also given. For independent errors, a code which will correct any error, provided that no consecutive "

" positions have more than "

" digits in error, is discussed. For

, a necessary and sufficient condition on

is derived; for

, a lower bound on

is obtained, and for the case of redundancy

, an upper bound on

is also derived.