Lecture: 3 hours
Laboratory: 3 hours
Prerequisite: Course 140A, 150
Grading: Letter; presentations (45%), paper + project (45%), class participation (10%).
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).
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:
Expanded Course Description:
Part I, Language Parameters
Part 2, Language Design and Implementation
Selected papers from the literature.
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).
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