DATALOG AS A PARALLEL GENERAL PURPOSE PROGRAMMING LANGUAGE

The increasing available parallelism of computers demands new programming languages that make parallel programming dramatically easier and less error prone. It is proposed that datalog with negation and timestamps is a suitable basis for a general purpose programming language for sequential, parallel and distributed computers. This paper develops a fully incremental bottom-up interpreter for datalog that supports a wide range of execution strategies, with trade-offs affecting efficiency, parallelism and control of resource usage. Examples show how the language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics.

[1]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[2]  Mats Carlsson,et al.  Parallel execution of prolog programs: a survey , 2001, TOPL.

[3]  David Chu,et al.  Evita raced: metacompilation for declarative networks , 2008, Proc. VLDB Endow..

[4]  Ehud Y. Shapiro,et al.  Algorithmic program diagnosis , 1982, POPL '82.

[5]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[6]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[7]  Adrian Walker,et al.  Towards a Theory of Declarative Knowledge , 1988, Foundations of Deductive Databases and Logic Programming..

[8]  H. Przymusinska,et al.  Weakly stratified logic programs , 1990 .

[9]  John G. Cleary,et al.  Tabling Structures for Bottom-Up Logic Programming , 2002, LOPSTR.

[10]  Mengchi Liu,et al.  Deductive database languages: problems and solutions , 1999, CSUR.

[11]  Josep Francesc Silva Galiana Debugging techniques for declarative languages: profiling, program slicing and algorithmic debugging , 2007 .

[12]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[13]  Ion Stoica,et al.  Implementing declarative overlays , 2005, SOSP '05.

[14]  Robert A. Kowalski,et al.  Predicate Logic as Programming Language , 1974, IFIP Congress.

[15]  Wlodzimierz Drabent,et al.  Proving correctness and completeness of normal programs - a declarative approach , 2005, Theory Pract. Log. Program..

[16]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[17]  Ke Wang,et al.  Data Partition and Parallel Evaluation of Datalog Programs , 1995, IEEE Trans. Knowl. Data Eng..

[18]  Neng-Fa Zhou,et al.  Efficient fixpoint computation in linear tabling , 2003, PPDP '03.

[19]  Roger Clayton,et al.  Compilation of bottom-up evaluation for a pure logic programming language , 2005 .

[20]  David Maier,et al.  Dedalus: Datalog in Time and Space , 2010, Datalog.

[21]  Alberto Pettorossi,et al.  Rules and strategies for transforming functional and logic programs , 1996, CSUR.

[22]  E. F. CODD,et al.  A relational model of data for large shared data banks , 1970, CACM.

[23]  François Gobert,et al.  Towards putting abstract interpretation of prolog into practice: design, implementation, and evaluation of a tool to verify and optimise prolog programs , 2008 .

[24]  Mark Utting,et al.  A semantics and implementation of a causal logic programming language , 2009 .

[25]  Mark Oskin,et al.  The revolution inside the box , 2008, CACM.

[26]  Donald A. Smith,et al.  Pseudo-Naive Evaluation , 1999, Australasian Database Conference.

[27]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[28]  Teodor C. Przymusinski On the Declarative Semantics of Deductive Databases and Logic Programs , 1988, Foundations of Deductive Databases and Logic Programming..

[29]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[30]  Mark Utting,et al.  Verification of Starlog Programs , 2001 .