Logic programming



noun
1.
the study or implementation of computer programs capable of discovering or checking proofs of formal expressions or segments
artificial intelligence, programming, language
A declarative, relational style of programming based on first-order logic. The original logic programming language was Prolog. The concept is based on Horn clauses.
The programmer writes a “database” of “facts”, e.g.
wet(water).
(“water is wet”) and “rules”, e.g.
mortal(X) :- human(X).
(“X is mortal is implied by X is human”). Facts and rules are collectively known as “clauses”.
The user supplies a “goal” which the system attempts to prove using “resolution” or “backward chaining”. This involves matching the current goal against each fact or the left hand side of each rule using “unification”. If the goal matches a fact, the goal succeeds; if it matches a rule then the process recurses, taking each sub-goal on the right hand side of the rule as the current goal. If all sub-goals succeed then the rule succeeds.
Each time a possible clause is chosen, a “choice point” is created on a stack. If subsequent resolution fails then control eventually returns to the choice point and subsequent clauses are tried. This is known as “backtracking”.
Clauses may contain logic variables which take on any value necessary to make the fact or the left hand side of the rule match a goal. Unification binds these variables to the corresponding subterms of the goal. Such bindings are associated with the choice point at which the clause was chosen and are undone when backtracking reaches that choice point.
The user is informed of the success or failure of his first goal and if it succeeds and contains variables he is told what values of those variables caused it to succeed. He can then ask for alternative solutions.
(1997-07-14)

Tagged:

Read Also:

  • Logic variable

    programming A variable in a logic programming language which is initially undefined (“unbound”) but may get bound to a value or another logic variable during unification of the containing clause with the current goal. The value to which it is bound may contain other variables which may themselves be bound or unbound. For example, when […]

  • Login

    [noun lawg-in, log-; verb lawg-in, log-] /noun ˈlɔgˌɪn, ˈlɒg-; verb ˌlɔgˈɪn, ˌlɒg-/ Digital Technology noun, Also, log-in, 1. the act of logging in to a database, mobile device, or computer, especially a multiuser computer or a remote or networked computer system. 2. a username and password that allows a person to log in to a […]



  • Logined

    [noun lawg-in, log-; verb lawg-in, log-] /noun ˈlɔgˌɪn, ˈlɒg-; verb ˌlɔgˈɪn, ˌlɒg-/ Digital Technology noun, Also, log-in, 1. the act of logging in to a database, mobile device, or computer, especially a multiuser computer or a remote or networked computer system. 2. a username and password that allows a person to log in to a […]

  • Logining

    [noun lawg-in, log-; verb lawg-in, log-] /noun ˈlɔgˌɪn, ˈlɒg-; verb ˌlɔgˈɪn, ˌlɒg-/ Digital Technology noun, Also, log-in, 1. the act of logging in to a database, mobile device, or computer, especially a multiuser computer or a remote or networked computer system. 2. a username and password that allows a person to log in to a […]



Disclaimer: Logic programming definition / meaning should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional. All content on this website is for informational purposes only.