Concurrent Logic Programming

The subject of concurrency has been an ongoing debate in the history of logic programming. Whilst concurrency is easily implemented in procedural languages, it gives rise to indeterminacy when applied to mathematical logic based languages.

 

Concurrency was introduced into mathematical logic languages using a message passing system involving unification of shared variables. This formed the basis of something called the Fifth Generation Computer Systems project in Japan, an attempt at massive parallelism using a logic-programming language to query a large database.

 

An example of a concurrent logic programming language is Ether. Ether was developed using the Scientific Community Metaphor and took the procedural approach to logic programming. The concurrency in Ether came out by dynamic rule creation during execution of a program. These then invoke procedural plans to process goals and assertions concurrently.

 

previous page next page