Description

 

Up Description Grades Assignments Links

 

CS 365 Programming Languages
(3 hours credit)

The focus of this course is on language paradigms (procedural, functional, object-oriented, logic), language design and implementation issues and language issues related to parallelism. The intent is not to teach many different programming languages, but rather to help the student
  • become familiar with the major structures found in programming languages,
  • be able to evaluate programming languages for their quality and applicability to particular problems, and
  • to design well-engineered languages.
Hence, the course is structured as a series of case studies investigating examples of the major programming language generations.

Prerequisites:

CS302
and some experience with the design and implementation of large software projects. Familiarity with basic data structures such as linked lists and stacks is assumed (contact M. Berry if you have concerns about your background for this course).

Film Schedule:

Three films from the PBS series
Nerds 2.0.1: A Brief History of the Internet
will be shown during the semester. The schedule and location of these films (shown during regular class periods, 11:10am-12:25pm) is listed below. Attendance is mandatory.

Title Date Location
Vol. I: Networking The Nerds 9/23 Hodges Lib. Aud.
Vol. II: Serving The Suits 10/19 Hodges Lib. Aud.
Vol. III: Wiring The World 12/2 Hodges Lib. Aud.

Textbook:

Principles of Programming Languages: Design, Evaluation and Implementation (Third Edition) by Bruce J. Maclennan, Oxford University Press, © 1999.

List of Topics:

  1. Goals; Pseudo-code Interpreters
  2. First Generation (FORTRAN)
  3. Second Generation (Algol-60)
  4. Second Generation: Syntactic Issues (Algol-60)
  5. Third Generation (Pascal)
  6. Runtime Implementation of Modern Languages
  7. Fourth Generation (Ada)
  8. Fifth Generation: Functional Programming (LISP)