Lecture: 3 hours
Laboratory: 3 hours
Prerequisite: Course 140A, 150
Grading: Letter; presentations (45%), paper + project (45%), class participation (10%).
Catalog Description:
Language design parameters. Models of parallel machines. Load balancing.
Scalability. Portability. Efficiency measures. Design and implementation
techniques for several classes of concurrent programming languages (such
as object-oriented, functional, logic, and constraint programming languages).
Goals:
There are a number of elements - such as computational and resource efficiency
requirements, models of computation, machine configurations, and software
development concerns - that influence the design and implementation of a
concurrent programming language. Many of the elements are inter-dependent,
some with conflicting requirements. The design and implementation of a concurrent
programming language is therefore difficult and complex.
In this course, we will study the design and implementation of many concurrent programming languages. The focus will be on the implementation techniques. There are two goals:
Part I, Language Parameters
Textbook:
Selected papers from the literature.
Computer Usage:
Students work in groups on experiments designed to test different aspects
of language design and implementation. Students design and implement experiments,
and run them on parallel and distributed systems (incl. networks of workstations).
Laboratory:
Substantial laboratory work involves i) concurrent programming using different
computation models, ii) experimental analysis of existing software systems
such as thread, communication, and distributed shared memory packages, and/or
iii) implementation of a concurrent or parallel programming model or construct.
Engineering Design Content:
Lectures discuss general parameters of concurrent programming languages, their tradeoffs, and their impact on application programming. The presentations, paper, and project focus on design and implementation issues for concurrent programming languages. Typical examples of these activities include: designing the implementation for a particular part of an existing language; designing a concurrent programming language and the implementation of its key parts; examining trade-offs among existing implementations of an existing language; adding a new feature to a language and its implementation; and modifying an existing implementation of an existing language. Lectures and other activities will also address implementation goals such as performance, portability, effort, etc. as well as their trade-offs.
ABET Category Content:
Engineering Science: 1 unit
Engineering Design: 3 units
Instructors: R. Pandey, R. Olsson
Prepared By: R. Pandey (Feb. 1997)
THIS COURSE DOES NOT DUPLICATE ANY EXISTING COURSES
Last revised: 2/97