A Semantics and Implementation of a Causal Logic Programming Language
Source: University of Waikato
Highly sophisticated and high end computers demand new programming languages that make parallel programming considerably easier and less error prone. This paper describes semantics for a new class of declarative programming tuples, where an efficient bottom-up execution algorithm for doing garbage collection based on the Least-Fix-Point (LFP) construction is developed. With the relational database theory, it is easy to prove programs correct, debug, convert and modify them while maintaining accuracy. Starlog language's simple logical semantics encompasses difficult areas including input, output and mutation of the primary database. JStar is compact, efficient and powerful language for parallel programming. Starlog and JStar logic programming language has key features like relational data, timestamps & causality (defined between timestamps) to enable destructive updating of data within the program for efficiency. The specification of a simple least fix-point semantics describes a pure logic programming language, an efficient interpreter by demonstration of the feasibility of garbage collection, discussion of program specific optimizations and reference to other work to automatically select data structures for implementing relational tables. The foremost technical face of this paper has been showing how to use explicit time stamps on all tuples in the program. This highly parallel basis for implementation, together with the ability to retarget the highly conceptual data representations of relational tables, makes the language a good contender to address the tribulations inherent in increasingly diverse and parallel contemporary computational hardware.