CS251
Principles of Programming Languages

This course introduces the principles underlying the design, semantics, and implementation of modern programming languages in major paradigms including function-oriented, imperative, and object-oriented. The course examines: language dimensions including syntax, naming, state, data, control, types, abstraction, modularity, and extensibility; issues in the runtime representation and implementation of programming languages; and the expression and management of parallelism and concurrency. Students explore course topics via programming exercises in several languages, including the development of programming language interpreters.

Units: 1

Max Enrollment: 24

Prerequisites: (CS 230 or CS 230P or CS 230X) or permission of the instructor.

Instructor: Turbak

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring

Notes: