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:
- Lecture: 3 hours
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...
- Develop formal descriptions of the syntax and semantics of programming languages.
- Apply knowledge of language semantics to explain the behavior of programs.
- 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.
- Explain how abstract programming language concepts are implemented in concrete programming languages.
- Explain the design trade-offs seen in programming languages such as Java, C, Scheme, OCaml, Python, and others.
Topics:
- Language design trade-offs
- Value representations and memory management
- Type systems
- Formal semantic methods
- Higher order functions and closures
- Object systems
- Reactive systems
- Constraint logic systems
- Security issues
See Course Listings