Michal Kapalka, EPFL, Switzerland http://kapalka.eu The Principles and Semantics of Transactional Memory Transactional memory (TM) is a promising paradigm for concurrent programming in the multi-core era. It is as easy to use as coarse-grained critical sections, yet it can compete in scalability with hand-crafted, fine-grained locking techniques. In short, a TM allows threads of an application to communicate by executing lightweight, in-memory transactions on the shared data. Transactions are atomic: programmers get the illusion that every transaction is executed instantaneously, at some single and unique point in time. The aim of this talk is to give a high-level overview of the semantics of a TM (what a TM is precisely), basic TM strategies (how to implement and use a TM, what are the trade-offs), and inherent power and limitations of this paradigm (what can we do using a TM and what is impossible).