This course introduces 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.
Max Enrollment: 24
Prerequisites: CS 230 or permission of the instructor.
Distribution Requirements: MM - Mathematical Modeling and Problem Solving
Typical Periods Offered: Spring; Fall
Semesters Offered this Academic Year: Fall; Spring