HOME

TheInfoList



OR:

Concurrent logic programming is a variant of
logic programming Logic programming is a programming, database and knowledge representation paradigm based on formal logic. A logic program is a set of sentences in logical form, representing knowledge about some problem domain. Computation is performed by applyin ...
designed for
parallel computing Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
in which programs are sets of guarded Horn clauses of the form: : The conjunction is called the
guard Guard or guards may refer to: Professional occupations * Bodyguard, who protects an individual from personal assault * Crossing guard, who stops traffic so pedestrians can cross the street * Lifeguard, who rescues people from drowning * Prison gu ...
of the clause, and is the commitment operator. Declaratively, guarded Horn clauses are read as ordinary logical implications: : However, procedurally, when there are several clauses whose heads match a given goal, then all of the clauses are executed in parallel, checking whether their guards hold. If the guards of more than one clause hold, then a committed choice is made to one of the clauses, and execution proceeds with the subgoals of the chosen clause. These subgoals can also be executed in parallel. Thus concurrent logic programming implements a form of "don't care nondeterminism", rather than "don't know nondeterminism".


History

The first concurrent logic programming language was the Relational Language of Keith L. Clark and Steve Gregory, which was an offshoot of IC-Prolog. Later versions of concurrent logic programming include Ehud Shapiro's Concurrent Prolog and Ueda's Guarded Horn Clause language. The development of concurrent logic programming was given an impetus when Guarded Horn Clause was used to implement KL1, the systems programming language of the Japanese Fifth Generation Project (FGCS). The FGCS Project was a $400M initiative by Japan's
Ministry of International Trade and Industry The was a Ministry (government department), ministry of the Government of Japan from 1949 to 2001. The MITI was one of the most powerful government agencies in Japan and, at the height of its influence, effectively ran much of Japanese industri ...
, begun in 1982, to use massively
parallel computing Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
/processing for
artificial intelligence Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
applications. The choice of concurrent logic programming as the “missing link” between the hardware and the applications was influenced by a visit to the FGCS Project in 1982 by Ehud Shapiro, who invented Concurrent Prolog.


See also

* Concurrent constraint logic programming *
Logic programming Logic programming is a programming, database and knowledge representation paradigm based on formal logic. A logic program is a set of sentences in logical form, representing knowledge about some problem domain. Computation is performed by applyin ...
*
Nondeterministic programming A nondeterministic programming language is a programming language, language which can specify, at certain points in the Computer program, program (called "choice points"), various alternatives for Control flow, program flow. Unlike an Conditional ...


References

* {{Programming paradigms navbox Programming paradigms Logic programming * Parallel computing