Principles underlying different kinds of programming languages (procedural, functional, logic programming) and their semantics. Overview of machinery needed for language support (compilers, interpreters and run-time systems). Prerequisite(s): SYSC 2004 or SYSC 2100.Lectures three hours a week, laboratory three hours alternate weeks.