Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Concurrent logic programming

From Wikipedia, the free encyclopedia
Logic programming paradigm

Concurrent logic programming is a variant oflogic programming designed forparallel computing in which programs are sets of guardedHorn clauses of the form:

H :- G1, …, Gn | B1, …, Bn.

The conjunctionG1, … , Gn is called theguard of the clause, and| is the commitment operator.

Declaratively, guarded Horn clauses are read as ordinary logical implications:

H if G1 and … and Gn and B1 and … and Bn.

However, procedurally, when there are several clauses whose headsH match a given goal, then all of the clauses are executed inparallel, checking whether their guardsG1, … , Gn hold. If the guards of more than one clause hold, then acommitted choice is made to one of the clauses, and execution proceeds with the subgoalsB1, …, Bn of the chosen clause. These subgoals can also be executed in parallel. Thus concurrent logic programming implements a form of "don't care nondeterminism", ratherthan "don't know nondeterminism".

History

[edit]

The first concurrent logic programming language was the Relational Language ofKeith L. Clark and Steve Gregory, which was an offshoot ofIC-Prolog. Later versions of concurrent logic programming includeEhud Shapiro'sConcurrent 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 implementKL1, the systems programming language of theJapanese Fifth Generation Project (FGCS). The FGCS Project was a $400M initiative by Japan'sMinistry of International Trade and Industry, begun in 1982, to use massivelyparallel computing/processing forartificial intelligence 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 inventedConcurrent Prolog.

See also

[edit]

References

[edit]
Imperative
Structured
Object-oriented
(comparison,list)
Declarative
Functional
(comparison)
Dataflow
Logic
Domain-
specific
language

(DSL)
Concurrent,
distributed,
parallel
Metaprogramming
Separation
of concerns
Retrieved from "https://en.wikipedia.org/w/index.php?title=Concurrent_logic_programming&oldid=1276059308"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp