Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
4 user(s) are online (4 user(s) are browsing encyclopedia)

Members: 0
Guests: 4

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

Logic programming

Logic programming (sometimes called logical programming) is a programming paradigm that is claimed to be declarative (i.e., based on mathematical logic) but this claim is controversial (see Logic programming#Limitations of Prolog as logic programming below).

There are two families of logic programming languages: an original sequential form Prolog and a later concurrent form.

Other, more modern .

=Basis in mathematical logic=

The point of logic programming is to bring the style of mathematical logic to computer programming. Mathematicians and philosophers find logic a successful tool for developing bodies of theory. Many problems are naturally expressed as a theory. To say a problem needs solving is often equivalent to asking if a new hypothesis is consistent with an existing theory. Logic provides a way to prove whether the question is true or false. The process of constructing a proof is well-known, so logic is thought to be a reliable way to answer questions. Logical programming systems automate this process. Artificial Intelligence was an important influence on the development of logic programming.

=Prolog=

Prolog was an early programming language that claimed to be based on mathematical logic. The basis for the claim that Prolog was that it used backward chaining from goal to subgoal (as in Planner programming language).

Schematically, the process is:

goal :- subgoal1, ..., subgoaln.

which states that in order to prove goal, it is sufficient to prove subgoal1 through subgoaln.

=Limitations of Prolog as logic programming=

However, Prolog did not include the negation or disjunction of mathematical logic because both individually and together they cause a lot of trouble for the Prolog interpreter. For example if negation were included, the following Prolog program

not Q. Q :- P.

would be unable to prove not P even though it follows by the rules of mathematical logic. This is an illustration of the fact that Prolog is unable to prove many of the logical consequences that follow from a declarative reading of its programs.

==Inductive logic== A related paradigm to logic progamming is inductive logic programming, which is concerned with finding general rules based on a sample of facts.

=Application domains=

*Expert systems, where the program generates a recommendation or answer from a large model of the application domain. *Automated theorem proving, where the program generates novel theorems to extend some existing body of theory.

==See also==

  • Constraint programming
  • Formal methods
  • Functional programming
  • Programming paradigm
  • =External links=

  • [http://vl.fmnet.info/logic-prog/ Logic Programming Virtual Library entry]
  • [http://liinwww.ira.uka.de/bibliography/LogicProgramming/ Bibliographies on Logic Programming]
  • [http://www.cs.kuleuven.ac.be/~dtai/projects/ALP/ Association for Logic Programming (ALP)]
  • =Reference=

    *Carl Hewitt. PLANNER: A Language for Proving Theorems in Robots IJCAI 1969. *Carl Hewitt. Procedural Embedding of Knowledge In Planner IJCAI 1971. *Robert Kowalski Predicate Logic as Programming Language Memo 70, Department of Artificial Intelligence, Edinburgh University. 1973. *Bill Kornfeld and Carl Hewitt. The Scientific Community Metaphor IEEE Transactions on Systems, Man, and Cybernetics. January 1981. *Carl Hewitt. The Challenge of Open Systems Byte Magazine. April 1985. *Robert Kowalski. The limitation of logic Proceedings of the 1986 ACM fourteenth annual conference on Computer science. *Ehud Shapiro (Editor). Concurrent Prolog MIT Press. 1987. *Robert Kowalski. The Early Years of Logic Programming CACM. January 1988. *Ehud Shapiro. The family of concurrent logic programming languages ACM Computing Surveys. September 1989. *Carl Hewitt and Gul Agha. Guarded Horn clause languages: are they deductive and Logical in Artificial Intelligence at MIT, Vol. 2. MIT Press 1991. *Shunichi Uchida and Kazuhiro Fuchi Proceedings of the FGCS Project Evaluation Workshop Institute for New Generation Computer Technology (ICOT). 1992.