Computer Science 335. Principles of Programming Languages
A theoretical study of the principles that govern the design and implementation of contemporary programming languages. This includes language syntax (lexical properties, BNF notation and parsing); language representations (data structures, control structures and runtime environments); and practical experience with language styles (procedural, functional, logical and object-oriented). Particular focus is on object-oriented languages. Labs, homework and programming assignments include selections from languages that are object-oriented (Java, C++, C#), functional (LISP), declarative (PROLOG) and used for data-interface (PERL), building system tools (C) and object-based applications (Visual Basic).