COSC-541 Advanced Programming Languages
Spring for 2008-2009
This course will deal with Advanced Concepts in Programming Languages. In this course, students will learn the tradeoffs of imperative vs. non-imperative (declarative) programming languages, issues involved in designing a programming language, and the role of formal semantics in reasoning about programs and languages. This course will cover lambda calculus and functional programming followed by logic programming. Then it will switch to studying semantics of programming languages (Operational, Denotational and Axiomatic). It also covers fix-points and basics of program verification at the end. Good understanding of set theory, discrete mathematics, and data structures is required for this course. In the semantics part, significant amount of time will be devoted to denotational semantics. This course will help students in improving their understanding of the process of (declarative) programming and the structure of computation. They will also learn how to rapidly implement interpreters and compilers for languages. They will also see the close relationship between language semantics and correctness of programs.
Prerequisites: COSC071, COSC072, COSC272
Other academic years
There is information about this course number in other academic years: