main navigation
my pace

CS 611 Principles of Programming Languages

Course Description: Concept underlying the design of traditional and modern programming languages; language paradigms (imperative, object-oriented, functional, and logic); cross-language interoperability on the .NET and JVM platforms; semantics (operational and denotational); type systems (polymorphism, inference, and abstract types); garbage collection; multiprocessing; formal syntax of programming languages using BNF and EBNF grammars, scanning. Parsing and the compilation process; use of Lex and Yacc for the functions of scanning and parsing. The course involves substantial programming assignments in different programming languages (C, ML, Prolog, Scala, F# as representatives) and a significant amount of reading.

Course Rotation:


3 credits


CS 504 Minimum Grade of C