Formal language theory, principles and techniques of compiler construction, programming language design concepts, parallelism and formal semantics.