Programming Language Theory: Difference between revisions
| Line 125: | Line 125: | ||
** Forward chaining -- concluding truth of <tt>a</tt> via discovery of <tt>b, c</tt> | ** Forward chaining -- concluding truth of <tt>a</tt> via discovery of <tt>b, c</tt> | ||
* Lists are formed via square brackets, and '|' divides the car and cdr of a list | * Lists are formed via square brackets, and '|' divides the car and cdr of a list | ||
Two semantics: declarative (first-order predicate logic) and procedural (DFS of the database). | |||
* The procedural semantics involve terms (constants, atoms, functors), ground terms (a term containing no variables), and the resolvent (set of all outstanding subgoals). | |||
** Queries with no variables can trivially be decided as true or false | |||
** The result is otherwise the set of all query-satisfying bindings between variables and ground terms | |||
** Resolvent grows when a RHS is substituted for a subgoal | |||
** Resolvent shrinks when a fact matches a subgoal | |||
===Constraint Programming=== | ===Constraint Programming=== | ||