B649 Concurrent Programming Languages for System Design
(Incorrectly listed as "Programming Paradigms - Parallel Performance")
Geoffrey Brown
Spring 2003
MW 2:30-3:45pm LH019
(Preliminary - Subject to change)
Concurrent programming languages are widely used for system
design in applications as diverse as Internet routers, communication
protocols, system codesign (the development of software
and hardware in parallel), window managers, and custom computing engines.
This course will focus upon concurrent programming languages based
upon the "communicating sequential processes" (CSP) model. These
languages have a number of desirable properties including a powerful
communication model that supports both local and remote communications,
implementations in both hardware and software, and rich algebraic
properties that enable reasoning about programs and design by
refinement.
This course will focus on four aspects of these languages: their various
flavors, applications, implementation, and behavioral models (semantics).
The languages to be considered include:
- CSP - the foundation for this family of languages
- limbo - the scripting language for the Inferno distributed
operating system
- Promela - the protocol description language used in the SPIN
verification system
- Handel-C - a language for describing custom computing machines
- Click - The language used for the Click modular router project.
Applications to be discussed include:
- Communication protocol design
- Router design
- Hardware/Software Codesign and custom computing
The course will consist of lectures based upon readings from the computing
literature. Students will be required to develop a project exploring some
aspect of the course in greater depth than the lectures.
The course is intended for graduate students with interests in a
variety of areas including:
- programming languages
- distributed systems
- systems design and implementation
There is no specific prerequisite other than an open mind.
File translated from
TEX
by
TTH,
version 3.40.
On 9 Oct 2003, 10:38.