Course Detail:

CSE6305


Programming Languages and Systems

3 Credit Hour Course

Prerequisite:

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.