Central concepts in modern programming languages, impact on software development, language design trade-o s and implementationconsiderations. Functional, imperative and object oriented paradigms. Formal semantic methods and program analysis. Modern type systems, higher-order functions and closures, exceptions and continuations. Modularity, object-oriented languages, and concurrency. Runtime support for language features, interoperability and security issues.