Programming Languages and Systems
3 Credit Hour Course
Prerequisite:
None
Modern programming languages; Object oriented programming systems; Runtime virtual machines: How virtual machine works, Different classes of virtual machines, Jikes research virtual machine; Compilation techniques: Interpreter and baseline compilation, Just-in-time compilation and dynamic optimization; Type systems: Strong and weak type systems, Static and dynamic type checking; Concurrency and synchronization: Atomic operations, Thin locks and lock free design; Memory model; Thread scheduling; Dynamic memory allocation: Free-list, contiguous and region based allocation, Fast parallel memory allocation; Garbage collection: Fundamental garbage collection algorithms, Stop-the-world, parallel and concurrent garbage collection, State of the art garbage collectors; Performance analysis and benchmarking.
- Teacher: Rifat Shahriyar