Course Overview
- Instructor:Dr. Gruia-Catalin Roman
- Time:Mondays and Wednesdays from 4:00 PM to 5:30 PM
- Place:Cupples II Room 200
- Textbook:Programming Languages: Principles and Practice (Second Edition)
- Credits:3
Description
A systematic study of the principles, concepts, and mechanisms of computer programming languages: their syntax, semantics, and pragmatics; the processing and interpretation of computer programs; programming paradigms; and language design. Illustrative examples will be selected from a variety of programming language paradigms.
The study of languages is central to the computer science field. This course addresses key issues regarding language definition and implementation techniques. Formal specification of languages requires an understanding of methods for expressing their syntax (e.g., BNF, attribute grammars) and semantics (e.g., operational, denotational, and axiomatic). Language implementation deals with the run-time structures needed to support various language features such as data types, operations, flow of control constructs, exception handling, visibility rules, subprograms, concurrency, etc. Block structured languages (e.g., Ada, Java, C++) provide a vehicle for studying the evolution of modern language features and their implementation techniques. Functional programming (e.g., pure Lisp), logic programming (e.g., Prolog), and object-oriented programming (e.g., Smalltalk) are used to explore implementation requirements for alternate programming paradigms.
Students entering this course must have considerable exposure to at least one major programming language and a basic knowledge of discrete mathematics, lambda calculus, and predicate calculus. Upon completion of this course students must be able to specify formally the syntax and semantics of simple programming languages and must be able to design interpreters for such languages.
Prerequisites
- CSE 132: Introduction to Computer Science II
- CSE 240: Logic and Discrete Mathematics
- CSE 241: Algorithms and Data Structures
Earlier Website
For the website of the course, taught by Dr. Stan C. Kwasny last year, click here.