This document discusses recursive and recursively enumerable (RE) languages. It defines recursive languages as those for which there exists a Turing machine that halts and accepts for strings in the language, and halts and rejects for strings not in the language. RE languages may include those where the Turing machine accepts strings in the language but does not always halt for strings not in the language. It proves that the complement of a recursive language is also recursive, but the complement of an RE language may not be recursive or RE. It introduces the universal language Lu, which is RE but not recursive, making the problem it defines undecidable.