This project addresses the problem of giving full and formal semantics to programming languages that combine a number of complex features, including memories, object-orientedness, rich notions of type, exceptions, and concurrency. An operational approach is taken to semantics since it is the only method with immediate potential for applicability to such rich languages. The resulting operational theory also includes a rich theory of equivalence on programs to aid compiler writers and language transformers. This research focuses on: (1) lifting concepts from domain theory, such as finiteness and omega-algebraicity, into full-featured languages, (2) giving semantic type descriptions of full-featured languages, in particular the difficult case of object-oriented languages, and (3) studying full-featured languages as one piece to discover interactions and conflicts, rather than addressing each feature in a separate study.