Durra: A Task-Level Description Language Reference Manual (Version 2)
September 1989 • Technical Report
Mario R. Barbacci, J. Wing
This 1989 report is a revised version of the original Durra reference manual. This revision describes the syntax and semantics of the language and incorporates several language changes.
Software Engineering Institute
CMU/SEI Report Number
Durra is a language designed to support the development of large-grained parallel programming applications. These applications are often computation-intensive, or have real-time requirements that require efficient concurrent execution of multiple tasks, devoted to specific pieces of the application. During execution time the application tasks run on possibly separate processors, and communicate with each other by sending messages of different types across various communication links. The application developer is responsible for prescribing a way to manage all of these resources. We call this prescription a task-level application description. It describes the tasks to be executed, the possible assignments of processes to processors, the data paths between the processors, and the intermediate queues required to store the data as they move from source to destination processes. Durra is a task-level description language, a notation in which to write these application descriptions. This document is a revised version of the original reference manual. It describes the syntax and semantics of the language and incorporates all the language changes introduced as a result of our experiences writing task and application descriptions in Durra. A companion document, Durra: A Task-Level Description Language User's Manual describes how to use the compiler, runtime environment, and support tools.