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
- Structure in Programming (von Neumann machines, syntax)
- Language Elements (expression evaluation, functions, recursion, scope, types
and type equivalence)
- Procedure Activations (variable addressing, parameters, storage mapping for
assignable type, pointers and dynamic allocations)
- Data Encapsulation and Inheritence
- Functional Programming
- Logic Programming
- 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.