Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ch. 13 Ch. 131 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan.

Similar presentations


Presentation on theme: "Ch. 13 Ch. 131 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan."— Presentation transcript:

1 Ch. 13 Ch. 131 jcmt CSE 3302 CSE@UTA Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan

2 Ch. 13 Ch. 132 jcmt CSE 3302 CSE@UTA Programming Languages Logic Programming Nonprocedural programming Higher-level language allows one to express the same program with less detail Language does more automatically Programmer focuses more on what to do not on how to do it

3 Ch. 13 Ch. 133 jcmt CSE 3302 CSE@UTA Programming Languages Automatic deduction Automatic theorem proving –The development of programs that can construct formal proofs of propositions stated in symbolic language –Side effect of proof is construction of a result which demonstrates the proof Programs expressed in the form of propositions that assert the existence of a desired result

4 Ch. 13 Ch. 134 jcmt CSE 3302 CSE@UTA Programming Languages Prolog Programs are structured like theorems –Clauses that define the problem domain –Facts (database of relationships among atomic individuals) –Goals Is a fact provable? Is there an individual satisfying the goal? Is there a solution satisfying the goal?

5 Ch. 13 Ch. 135 jcmt CSE 3302 CSE@UTA Programming Languages Prolog Clauses Clauses define relationships or “predicates” Facts or hypotheses parent (charles, harry). Goals :- grandparent (elizabeth, X). Conditions or rules grandparent(Y, Z) :- parent (Y,W), parent(W,Z).

6 Ch. 13 Ch. 136 jcmt CSE 3302 CSE@UTA Programming Languages Predicates :- Predicates –Relationship applied to terms – Relationships Properties of Relations among – Terms Atoms Variables Compound terms Horn clause form

7 Ch. 13 Ch. 137 jcmt CSE 3302 CSE@UTA Programming Languages Goals Executing a goal –Match clauses in predicate by finding an assignment of values to the variables that makes the goal identical to the head of one of the clauses (unification) –Variables are bound (instantiated) to create subgoal –Recursive application and pattern matching

8 Ch. 13 Ch. 138 jcmt CSE 3302 CSE@UTA Programming Languages Compound terms Compound term allows us to describe individuals without naming them Functor with atoms or variables d(X, plus(U,V), plus(DU,DV)) or d(X, U + V, DU + DV) Similar to LISP list structure Acts somewhat like a function but is not a function call

9 Ch. 13 Ch. 139 jcmt CSE 3302 CSE@UTA Programming Languages Data structures No constructors Data structures are implicitly defined by their properties Few primitives Compound terms can provide logical description of structure –Some Prologs allow infix notation for functors

10 Ch. 13 Ch. 1310 jcmt CSE 3302 CSE@UTA Programming Languages Complex structures Compound terms represent themselves –Symbolic notations can be defined directly –Good for mathematical relationships Predicates can define structures –Predicates can replace compound terms –Expressions matched to clauses must exist within the Prolog “closed world” –Good for object-oriented relationships

11 Ch. 13 Ch. 1311 jcmt CSE 3302 CSE@UTA Programming Languages More data structures Abstract data types - so abstract they’re only described Infinite terms - “occurs check” Representation of ‘infinite’ list is finite –Circular structure

12 Ch. 13 Ch. 1312 jcmt CSE 3302 CSE@UTA Programming Languages Control Structures Separation of logic and control –Independent analysis Order of clauses has no effect on meaning or logic Control affects generation and unification of subgoals –Efficiency is an issue but not meaning

13 Ch. 13 Ch. 1313 jcmt CSE 3302 CSE@UTA Programming Languages Subgoal Generation Top-down –Start from goal; try to reach hypotheses –Recursive approach Bottom-up –Start with hypotheses; try to reach goal –Iterative approach

14 Ch. 13 Ch. 1314 jcmt CSE 3302 CSE@UTA Programming Languages Backtracking Multiple matching clauses may be available If a failure occurs after a choice point, execution backtracks to the last choice point Another match is made and execution continues. Implementation of efficient backtracking is crucial in logic programming

15 Ch. 13 Ch. 1315 jcmt CSE 3302 CSE@UTA Programming Languages Input / Output Parameters Goals attempt to satisfy subgoals with whatever value is unified Parameters are neither inherently input nor output. Which ever is supplied is used as input. When no parameter values are given, the systems attempts to search for any solution that satisfies the pattern

16 Ch. 13 Ch. 1316 jcmt CSE 3302 CSE@UTA Programming Languages Searching in Prolog Depth-first search is specified –Not pure logic programming Attempts to satisfy goals in the order written Will try matching clauses in the order in which they were entered into the DB

17 Ch. 13 Ch. 1317 jcmt CSE 3302 CSE@UTA Programming Languages Prolog vs. Logic Programming Interpretation of arithmetic jumps beyond the bounds of strict logic programming unless handled as succ() Efficiency requires the use underlying hardware support ‘is’ gives an assignment Binding forces ordering

18 Ch. 13 Ch. 1318 jcmt CSE 3302 CSE@UTA Programming Languages Search rationale Breadth-first –searches paths in parallel –needs exponentially more space than depth-first Depth-first –Can get caught in infinitely deep search –Programmer is required to order clauses to prevent endless search

19 Ch. 13 Ch. 1319 jcmt CSE 3302 CSE@UTA Programming Languages Nonmonotonic reasoning Updateable database –Assert –Retract Does not match logic Does match world state changes over time

20 Ch. 13 Ch. 1320 jcmt CSE 3302 CSE@UTA Programming Languages Cuts “You have found all the solutions there are; do not bother trying to find any others” Predicate that always succeeds, but past which you can never backtrack Used with repeat to provide looping

21 Ch. 13 Ch. 1321 jcmt CSE 3302 CSE@UTA Programming Languages Higher-order rules Parameters must be terms not predicates Logic programming is generally restricted to first-order logic Resolution algorithm is complete only for first-order logic

22 Ch. 13 Ch. 1322 jcmt CSE 3302 CSE@UTA Programming Languages Negation Unsatisfiability - cannot be proved true –Absence of data –Closed world assumption Conclusions can be drawn about relationships that DO hold NO conclusions can be made about relationships that do NOT hold not( -- ) predicate succeeds if -- fails

23 Ch. 13 Ch. 1323 jcmt CSE 3302 CSE@UTA Programming Languages Equivalence Term equality Other types of equivalence cannot be defined –In terms of logical properties Term inequality requires complete binding for correct interpretation


Download ppt "Ch. 13 Ch. 131 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan."

Similar presentations


Ads by Google