CS 720 Programming Language Principles

Note: The following provides a suggested course description, objectives, and an outline. These may be modified pending discussion with the Faculty Chairs, proposing faculty, and other curriculum reviewers.

Course Description: An introduction to programming language principles, including the history of programming languages, formal models for specifying languages, design goals, run-time structures, and implementation techniques, along with a survey of the principal programming language paradigms.

Course Objectives: To introduce the student to the principles of programming languages, including their specification, design, implementation, and classification into paradigms. Additionally, to give the student a survey of the principal programming language paradigms.

Course Outline by Topical Areas:

History of programming languages.

Specification of programming languages.

 

Syntax.

 

Semantics.

 

Operational semantics.

 

Axiomatic semantics.

 

Attribute grammars.

 

Denotational semantics.

The principal programming language paradigms.

 

The imperative paradigm.

 

Run-time structures.

 

Parameter passing mechanisms.

 

Control structures.

 

Data structures.

 

Scoping issues and their implementation.

 

The functional paradigm.

 

LISP.

 

SCHEME.

 

Scoping issues in functional languages.

 

The logic paradigm.

 

The Prolog language.

 

The object-oriented paradigm.

 

The C++ language.

 

The Smalltalk language.

 

Concurrent programming.

 

The SR language.