CMSC 330: ORGANIZATION OF PROGRAMMING LANGUAGES

Catalog Description

The run-time organization of programming languages (e.g., Pascal, C++, ML, Lisp, Prolog). Dynamic versus static scope rules and association of types are contrasted. Storage mappings for strings, arrays, and records.

Prerequisites

CMSC 214 and CMSC 250.

Topics

  1. Structure in Programming (von Neumann machines, syntax)
  2. Language Elements (expression evaluation, functions, recursion, scope, types and type equivalence)
  3. Procedure Activations (variable addressing, parameters, storage mapping for assignable type, pointers and dynamic allocations)
  4. Data Encapsulation and Inheritence
  5. Functional Programming
  6. Logic Programming
  7. Concurrency (deadlock, mutual exclusion, serializability)

Course Text

R. Sethi, Programming Languages - Concepts and Constructs, Addison Wesley, 1989.

Typical Grading and Workload

There are approximately six small programming assignments, two in each of three languages. The actual languages used in any semester may change slightly, but generally include one from each of the imperative, functional, and logic groups.