Download presentation
Presentation is loading. Please wait.
Published byJoan Poole Modified over 9 years ago
1
Chapter 2 Syntax and meaning of Prolog Programs
2
344-302 LP and Prolog Chapter 22 PROLOG domains variable name = type predicates relation(variable name, variable name, … ) goal run(X). clauses relation(value,value, … ). conclusion :- condition. conclusion if condition. type symbol, integer, real, char
3
344-302 LP and Prolog Chapter 23 TURBO PROLOG ftp://172.28.80.6/older/DosProgram/TPROLOG Alt + Enter = Big Screen F1 : Help F2 : Save F3 : Load F6 : Next/Switch F8 : Previous Goal F9 : Compile F10 : Step (For trace) / End Alt + T : Trace ON/OFF Set up window size edit Use arrow key to adjust the size
4
344-302 LP and Prolog Chapter 24 char1 byte characters integer2 byte integer numbers real8 byte floating point numbers symbolstrings inserted in the internal symbol table stringsequences of chars "hello world\n" PREDEFINED DOMAINS
5
344-302 LP and Prolog Chapter 25 SUMMARY OF PROGRAM SECTIONS Options must precede the other sections CONSTANTS const1 = definition const2 = definition [GLOBAL] DOMAINS dom [,dom] = [reference] declaration1; declaration2 listdom = dom* dom = [GLOBAL] DATABASE [ - ] [determ] pred1(....) pred2(.....) GLOBAL PREDICATES [determ|nondeterm] pred1(.........) -(i,i,o,..)(i,o,i,..) [ language c|pascal|fortran ] [ as "name" ] pred2(........) PREDICATES [determ|nondeterm] pred1(.........) pred2(........) CLAUSES p(....):-p1(...), p2(.....),.... include "filename" Include a file during compilation.
6
344-302 LP and Prolog Chapter 26 MISCELLANEOUS random(RealVariable) (real) - (o) random(MaxValue,RandomInt) (integer,integer) - (i,o) sound(Duration,Frequency) (integer,integer) - (i,i) beep date(Year,Month,Day) (integer,integer,integer) - (o,o,o) (i,i,i) time(Hours,Minutes,Seconds,Hundredths) (integer,integer,integer,integer) - (o,o,o,o) (i,i,i,i) trace(on/off) (string) - (i) (o)
7
344-302 LP and Prolog Chapter 27 ERROR & BREAK CONTROL trap (PredicateCall,ExitCode,Predicate ToCallOnError) exit exit (ExitCode) (integer) - (i) if exit to DOS then the DOS errorlevel task processing variable will contain the value given to the exit predicate. break (on/off) (string) - (i) (o)
8
344-302 LP and Prolog Chapter 28 EDITOR display(String) (string) - (i) edit(InputString,OutputString) (string,string) - (i,o) edit(InputString,OutputString,Headstr,Headstr2,Msg,P os,Helpfilename, EditMode,Indent,Insert,TextMode,RetPos,RetStatus) (string,string,string,string,string,integer,string,integer,integer,integer,integer,integer,integer) - (i,o,i,i,i,i,i,i,i,i,i,o,o) If the user saves the text from the editor, HeadStr2 will be used as the file name. editmsg(InputString,OutputString,Headstr,Headstr2,Ms g,Pos,Helpfilename,RetStatus) (string,string,string,string,string,integer,string,integer)- (i,o,i,i,i,i,i,o)
9
344-302 LP and Prolog Chapter 29 WINDOW SYSTEM makewindow(WindowNo,ScrAtt,FrameAtt,Framestr,Row,Col umn,Height,Width) (integer,integer,integer,string,integer,integer,in teger,integer) shiftwindow(WindowNo) (integer) - (i) (o) gotowindow(WindowNo) (integer) - (i) resizewindow(StartRow,NoOfRows,StartCol,NoOfCols) (integer,integer,integer,integer) - (i,i,i,i) colorsetup(Main_Frame) (integer) - (i)
10
344-302 LP and Prolog Chapter 210 INPUT readln(StringVariable) (string) - (o) readint(IntgVariable) (integer) - (o) readreal(RealVariable) (real) - (o) readchar(CharVariable) (char) - (o) keypressed unreadchar(CharToBePushedBack) (Char) - (i) readterm( Domain, Variable ) (DomainName,Domain) - (i,_)
11
344-302 LP and Prolog Chapter 211 OUTPUT write( Variable|Constant * ) nl writef( FormatString, Variable|Constant* ) In the format string the following options are known after a percentage sign: %d Normal decimal number. (chars and integers) %u As an unsigned integer. (chars and integers) %R As a database reference number. (database reference numbers) %X As a long hexadecimal number. (strings, database reference numb). %x As a hexadecimal number. (chars and integers). %s Strings. (symbols and strings). %c As a char. (chars and integers). %g Reals in shortest posible format (default for reals) %e Reals in exponetial notation %f Reals in fixed notation %lf Only for C compatibility (fixed reals) \n - newline \t - tabulator \nnn - character with code nnn
12
344-302 LP and Prolog Chapter 212 PROLOG_HELP ARITHMETIC Arithmetic operators: +, -, *, /, mod, div Relational operators: >, =,, >< Functions: sin, cos, tan, arctan, ln, log, exp, sqrt, round, trunc, abs EX: 1 + 2 = 2 + 1, X = 5/2, X = 5 mod 2, 5 <> 9
13
344-302 LP and Prolog Chapter 213 TURBO PROLOG Use the example from the EXAMPLE directory to try to program. Start with EX03EX01.PRO predicates likes(symbol,symbol) clauses likes(ellen, tennis). likes(john, football). FACTS likes(tom, baseball). likes(eric, swimming). likes(mark, tennis). likes(bill, Activity) if likes(tom, Activity). likes(mark, Activity) :- likes(ellen, Activity). RULES
14
344-302 LP and Prolog Chapter 214 bear.pro predicates big(symbol) small(symbol) brown(symbol) black(symbol) gray(symbol) dark(symbol) clauses big(bear). big(elephant). small(cat). brown(bear). black(cat). gray(elephant). dark(Z) :- black(Z). dark(Z) :- brown(Z). ?black(X),big(X) ?brown(X),big(X) ?big(X),black(X) ?black(X),big(X) No solution ?brown(X),big(X) X=bear ?big(X),black(X) No solution
15
344-302 LP and Prolog Chapter 215 EX04EX02.PRO domains brand, color = symbol age, price = integer mileage = real predicates car(brand, mileage, age, color, price) clauses car(chrysler, 130000, 3, red, 12000). car(ford, 90000, 4, gray, 25000). car(datsun, 8000, 1, red, 30000).
16
344-302 LP and Prolog Chapter 216 SUM, MULTIPLY : EX04EX01 domains product, sum = integer predicates add_em_up(sum, sum, sum) multiply_em(product, product, product) clauses add_em_up(X, Y, Sum) :- Sum = X + Y. multiply_em(X, Y, Product) :- Product = X * Y.
17
344-302 LP and Prolog Chapter 217 sister Z X Y parent sister For any X and Y, X is a sister of Y if 1. Both X and Y have the same parent, and 2. X is a female. sister(X,Y) :- parent(Z,X), parent(Z,Y), female(X).
18
344-302 LP and Prolog Chapter 218 predecessor A B C E D parent
19
344-302 LP and Prolog Chapter 219 predecessor A B C E D predecessor(X,Z) :- parent(X,Y), parent(Y,Z). parent predecessor(X,Z) :- parent(X,Y1), parent(Y1,Y2), parent(Y2,Z). predecessor(X,Z) :- parent(X,Y1), parent(Y1,Y2), parent(Y2,Y3), parent(Y3,Z).
20
344-302 LP and Prolog Chapter 220 Parent1.Pro predicates parent(symbol,symbol) predecessor(symbol,symbol) clauses parent(pam,bob). parent(tom,bob). parent(bob,ann). parent(ann,jim). parent(jim,joe). parent(joe,john). parent(john,jack). parent(tom,liz). predecessor(X,Z) :- parent(X,Z). predecessor(X,Z) :- parent(X,Y), parent(Y,Z). predecessor(X,Z) :- parent(X,Y1),parent(Y1,Y2),parent(Y2,Z). predecessor(X,Z) :- parent(X,Y1),parent(Y1,Y2),parent(Y2,Y3) parent(Y3,Z). annbobpam jim john joe jack
21
344-302 LP and Prolog Chapter 221 predecessor A B C E D parent For all X and Z, X is a predecessor of Z if there is a Y such that 1. X is a parent of Y and 2. Y is a predecessor of Z.
22
344-302 LP and Prolog Chapter 222 Parent2.Pro predecessor(X,Z) :- parent(X,Z). predecessor(X,Z) :- parent(X,Y), predecessor(Y,Z). predicates parent(symbol,symbol) predecessor(symbol,symbol) clauses parent(pam,bob). parent(tom,bob). parent(bob,ann). parent(ann,jim). parent(jim,joe). parent(joe,john). parent(john,jack). parent(tom,liz).
23
344-302 LP and Prolog Chapter 223 ISA Relationship Animal kingdom Plant kingdom AnimalHuman DogCat Toop Suwit Mew Sunee plant Flower RoseCarnation isa
24
344-302 LP and Prolog Chapter 224 isa1.Pro is(X,Z) :- isa(X,Z). is(X,Z) :- isa(X,Y), is(Y,Z). predicates isa(symbol,symbol) is(symbol,symbol) clauses isa(human,animal_kingdom). isa(plant,plant_kingdon). isa(flower,plant). isa(rose,flower). isa(carnation,flower). isa(suwit,human). isa(sunee,human). isa(dog,animal). isa(animal,animal_kingdom). isa(cat,animal). isa(toop,dog). isa(mew,cat). isa(white,cat). For all X and Z, X is a predecessor of Z if there is a Y such that 1. X is a parent of Y and 2. Y is a predecessor of Z.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.