1. Programming Languages
    1. Concurrency: Memory Consistency
    2. Atomicity and Locks
    3. Transactional Memory
    4. Actual Programming Language Topics

Maximilian Stark (mail@dakror.de), WS2019

Stand: 02.02.2020

Programming Languages

Concurrency: Memory Consistency

Memory Model

Strict Consistency

Happened-Before Relation

Ordering

Sequential Consistency

MESI Protocol

Out-Of-Order Stores

TSO (total store order)

TSO Example: x86

PSO (partial store order)

RMO (relaxed memory order)

Explicit Synchronization: Memory barriers

Dekker Algorithm

Future Many-Core Systems

Atomicity and Locks

Lock structures

Deadlocks

Transactional Memory

ACID

Software Transactional Memory (STM)

Hardware Transactional Memory (HTM)

Restricted Transactional Memory (RTM)

Hardware Lock Elision (HLE)

Outlook on TM

Actual Programming Language Topics

Dispatching

Inheritance Schools

Inheritance formalized

Inheritance Implementation

Mixins

Traits

Prototype-based Languages

Aspect Oriented Programming

Metaprogramming

Generators and Exceptions