Off-campus UMass Amherst users: To download dissertations, please use the following link to log into our proxy server with your UMass Amherst user name and password.

Non-UMass Amherst users, please click the view more button below to purchase a copy of this dissertation from Proquest.

(Some titles may also be available free of charge in our Open Access Dissertation Collection, so please check there first.)

Automatic synthesis of resource sharing concurrent programs

Ugo Alessandro Buy, University of Massachusetts Amherst

Abstract

Program synthesis is a discipline aimed at the automatic construction of executable programs from declarative specifications that describe the behavior of such programs. When a concurrent program is specified for synthesis, a programmer may indicate that certain program units can be executed concurrently as asynchronous processes. This document describes a new approach to the automatic synthesis of inter-process communication code for concurrent programs. The long range objective of this work is the definitions of tools and techniques for the production of reliable software systems. Our approach is aimed at enhancing the practicality of program synthesis techniques. First, we define a model in which a concurrent program consists of a set of asynchronous processes that interact with each other by accessing and modifying a set of shared resources. In particular, a program may contain multiple sets of potentially distributed resources. Second, we define a specification language that emphasizes a clear separation of the safety and liveness properties in a program specification. Temporal logic is used to define formally the semantics of program specifications. In addition, our specification language allows for a modular decompositions of program specifications into program units. Third, we define an approach to synthesis that is automatable. Our approach to synthesis is based on the following paradigm. First, a program specification is written in a declarative language based on temporal logic. Second, the specification is analyzed in an effort to prove that the target program satisfies crucial concurrency properties, such as absence of deadlock and freedom of starvation. Third, if the concurrency properties of the specification are established successfully, then Ada code is generated. Our approach broadens significantly the class of programs that can be generated automatically with respect to previous approaches. Programs can be synthesized that contain multiple sets of shared resources. In particular, we have successfully applied this approach to the specification and synthesis of a number of traditional examples for concurrency. These examples cover a variety of features that are typical of concurrent programs, such as mutual exclusion, possibility of deadlock, bounded length queues and interrupts.

Subject Area

Computer science

Recommended Citation

Buy, Ugo Alessandro, "Automatic synthesis of resource sharing concurrent programs" (1990). Doctoral Dissertations Available from Proquest. AAI9110112.
https://scholarworks.umass.edu/dissertations/AAI9110112

Share

COinS