Download presentation
Presentation is loading. Please wait.
Published byEzra Nowland Modified over 10 years ago
1
Logic Programming Lecture 1: Getting started
2
Getting started We’ll use SICStus Prolog Free for UofE students Available on all DICE machines http://www.sics.se/isl/sicstuswww/site/index.html
3
Hello World Prolog is an interactive language. $ sicstus
4
Hello World Prolog is an interactive language. $ sicstus ?- Prompt
5
Hello World Prolog is an interactive language. $ sicstus ?- print(’hello world’). Goal
6
Hello World Prolog is an interactive language. $ sicstus ?- print(’hello world’). hello world yes Output response
7
Atoms An atom is a sequence of alphanumeric characters usually starting with lower case letter or, a string enclosed in single quotes Examples: homer marge lisa bart ‘Mr. Burns’ ’Principal Skinner’
8
Variables A variable is a sequence of alphanumeric characters usually starting with an uppercase letter Examples: X Y Z Parent Child Foo
9
Predicates A predicate has the form p(t1,...,tn) where p is an atom and t1...tn are terms (For now a term is just an atom or variable) Examples: father(homer, bart) mother(marge, bart)
10
Predicates (2) Predicates have a name = atom p in p(t1,...,tn) and an arity = number of arguments (n) Predicates with same name but different arity are different We write foo/1, foo/2,... to refer to these different predicates
11
Facts A fact is an assertion that a predicate is true: father(homer, bart). mother(marge, bart). A collection of facts is sometimes called a knowledge base (or database). Punctuation is important!
12
Goals A goal is a sequence of predicates p(t1,...,tn),..., q(t1',...,tn'). We interpret “,” as conjunction Logically, read as "p holds of t1...tn and... and q holds of t1'...tm'"
13
Answers Given a goal, Prolog searches for answer(s) “yes” (possibly with substitution) “no” Substitutions are bindings of variables that make goal true Use “;” to see more answers
14
Rules A rule is an assertion of the form p(ts) :- q(ts’),..., r(ts’’). where ts, ts’, ts’’ are sequences of terms “p(ts) holds if q(ts’) holds and... and r(ts’’) holds” Example: sibling(X,Y) :- parent(Z,X), parent(Z,Y).
15
Tracing trace/0 turns on tracing notrace/0 turns tracing off debugging/0 shows tracing status
16
Consulting A Prolog program is a collection of facts and rules, or clauses stored in one or more files The predicate consult/1 loads the facts/rules in a file ?- consult(‘simpsons.pl’).
17
Consulting (2) If the file name ends with '.pl', can just write: ?- consult(simpsons). Also, can just write ?- [foo].
18
Simple I/O read/1: reads a term from input and binds its argument write/1: writes a term to output Example: loop :- read(X), process(X,Y), write(Y), loop. For most programming problems you can just work interactively
19
Further reading Quick Prolog notes (Dave Robertson) http://www.inf.ed.ac.uk/teaching/courses/lp/prolognotes.pdf Learn Prolog Now! (Blackburn, Bos, Striegnitz) online, free http://www.learnprolognow.org/ http://www.learnprolognow.org Programming in Prolog (Clocksin & Mellish) a standard/classic text, many library copies
20
Next time Compound terms Equality and unification How Prolog searches for answers
21
Exercises Using simpsons.pl, write goal bodies for: classmate(X,Y) employer(X) parent(X,Y) grandparent(X,Y) More in tutorial problems handout
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.