CSCI-3155 (4) Principles of Programming Languages

Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language. Prerequisites: Requires pre-requisite courses of CSCI 2270 and either CSCI 2400 or ECEN 3350 (minimum grade C-).

CSCI-4555 (3) Compiler Construction

Introduces the basic techniques used in translating programming languages: scanning, parsing, definition table management, operator identification and coercion, code selection and register allocation, error recovery. Students build a complete compiler for a simple language. Prereqs., CSCI 2400 or ECEN 3350 and CSCI 2824. Same as ECEN 4553 and CSCI 5525.

CSCI-5525 (3) Compiler Construction

Offers practical experience using state-of-the-art CAD tools on high-performance workstations. Provides skills needed to rapidly create little languages for specific problem domains and familiarizes students with automated software development. Prereqs., CSCI 2824 or ECEN 3703 and CSCI 2400 or ECEN 2120. Same as ECEN 5523 and CSCI 4555. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

CSCI-5535 (3) Fundamental Concepts of Programming Languages

Considers concepts common to a variety of programming languages--how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Prereq., CSCI 3155, or instructor consent. Same as ECEN 5533. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

CSCI-7135 (3) Topics in Programming Languages

Topics selected by instructor. Possible topics are syntax, semantics, metacompilers, compiler design, and translator writing systems. Prereq., instructor consent. Prerequisites: Restricted to Graduate Students only.