14.12 Thematic Takeaways

  • In declarative programming, the programmer specifies what they want to compute, not how to compute it.

  • In logic programming, the programmer specifies a knowledge base of known propositions—axioms declared to be true—from which the system infers new propositions using a deductive apparatus:

    Two expressions. Predicate calculus leads to representing the relevant knowledge. Resolution leads to rule of inference.
  • Propositions in a logic program are purely syntactic, so they have no intrinsic semantics—they can mean whatever the programmer wants them to mean.

  • In Prolog, the programmer specifies a knowledge base of facts and rules as a set of Horn clauses—a canonical representation for propositions—and the system uses resolution to determine the validity of goal propositions issued as queries, which are also represented as Horn clauses.

  • Unlike Prolog, which uses backward chaining, CLIPS uses forward chaining— there is no concept of a goal in CLIPS.

  • There is a mismatch between predicate calculus and Prolog. Some things can be modeled in one but not the other, and vice versa.

  • While Prolog primarily supports a logic/declarative style of programming, it also supports functional and imperative language concepts.

  • The ultimate goal of logic/declarative programming is to make programming entirely an activity of specification—programmers should not have to impart control upon the program. Prolog falls short of the ideal.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.134.114