A Declarative Language for Parallel Programming

  • Authors:
  • M. Gaspari

  • Affiliations:
  • -

  • Venue:
  • A Declarative Language for Parallel Programming
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

The use of logic as a programming tool has achieved a significant impact in software engineering, especially in the early stages of the software development process to support fast prototyping and early verification of costumers requirements. Logic programming languages allow the programmer to encode the costumer needs into logic programs which intuitively (declaratively) represent the requirements of the application and which are immediately executable applying deduction in the underlying logic formalism. Unfortunately this feature does not scale to parallel applications when mechanisms to explicitly manage synchronization and communication are introduced in logic programming languages. In fact these mechanisms endanger one of the main attractive feature of this paradigm: the declarative reading of programs. Although several extensions of logic programming with explicit communication primitives have been proposed a successful language, has not yet been invented, and the design of a really declarative parallel language is still an open issue. In this paper we address this issue trying to individuate a communication mechanism that can naturally be embedded in logic programming. As a result of this research we present Gammalog, a parallel logic language which combines the ability of describing communication by transformation rules on a shared-dataspace, with the execution model of logic programming. The main feature of Gammalog is that it provides an enhancement with respect to other parallel logic languages concerning the declarative reading of programs. Moreover a distributed implementation running on a workstation cluster shows that Gammalog can be efficiently executed on a general purpose architecture. This good balance between declarative features and implementability issues makes Gammalog a promising successful language for parallel programming in logic.