Programming Languages talks about the modern programming langauge concepts and paradigms, and the design trade-offs and implementations of different language features. Common sub-topics include compilers, interpreters, parsing, optimization, etc.
To study Programming Languages, students should have backgrounds in: