CSC 417 - Theory of Programming Languages

Catalog Description:

Theory of programming languages with emphasis on programming language semantics and implementation issues. Formal models of syntax and semantics. Static versus dynamic scoping. Parameter passing mechanisms. Garbage collection. Programming in alternate paradigms such as applicative, functional, logic, and object-oriented programming languages.


Contact Hours: Prerequisites: CSC316 or ECE309
Co-requisites: None
Restrictions: None
Coordinator: Dr. Jamie Jennings
Textbook: None

Course Outcomes:

Upon successful completion of this course, a student will be able to...
  1. Develop formal descriptions of the syntax and semantics of programming languages.
  2. Apply knowledge of language semantics to explain the behavior of programs.
  3. Describe and explain the characteristics of programming languages features such as static and dynamic type checking, memory management, higher-order functions, object prototypes and classes, reactivity, and constraint logic.
  4. Explain how abstract programming language concepts are implemented in concrete programming languages.
  5. Explain the design trade-offs seen in programming languages such as Java, C, Scheme, OCaml, Python, and others.


Topics:

See Course Listings

See Course Coordinators