390 likes | 930 Views
LISP and PROLOG AI Programming Language. Submitted To: Dr . Hesham El- Zoka. Submitted By: Eng. Ismail Fathalla El- Gayar. AI Programming Languages. AI Programming Languages. AI applications are also often written in standard languages like C++ and MATLAB.
E N D
LISP and PROLOG AI Programming Language Submitted To: Dr. Hesham El-Zoka Submitted By: Eng. Ismail Fathalla El-Gayar
AI applications are also often written in standard languages like C++ and MATLAB. So Why We Learn Logic Programming Languages???
System Usability PROLOG has many denotation, functional languages other than Lisp
System Usability Why Prolog here? • It is a particularly interesting language - the “feeling” is completely different from Java,C,... - forces to see programming in a different way - programming as writing a “logic theory” • Recently, renewed interest in Prolog in order to rapidly prototype: – complex algorithms, reasoning-like computations, dynamic structures, XML-like features – governing interaction inside system infrastructures
System Usability Why Prolog here? Conceptual reasons: • new programming idiom – programming is NOT writing in Java language • Prolog as an “engine” to study models and language Practical reasons: • integration between Prolog and Java – Java as the part handling more “in-the-large” aspects network, graphics, connection with the O.S. and libraries – Prolog as the engine to handle (complex) algorithms optimization algorithms, reasoning, core logic, data structures
System Usability Comparing Java / Prolog • Java (C,C++) forces a procedural and deterministic view over computation • Prolog allows for a more declarative way of programming – expressing the problem, not the solution! – it works very well when finding solutions is “exploring a tree”. • Other applications – dealing with knowledge representation and knowledge inference, typical use in AI
System Usability LISP & PROLOG Programming Language
ATOM & LIST • Atom: One Component Out Of List ex: x , y , k • LIST: Brackets Containing Atom ex: ( 2 3 x )
Functions the both languages are Object Oriented Programming Languages
List Processing Language • Since We Said that Lisp Is A List Processing Language we will talk about how we deals with List:- -(list '1 '2 'foo) ( 1 2 Foo ) - list 1 2 (list 3 4)) => ( 1 2 (3 4)) - ( + 1 2 3 4) 10 - (if nil (list 1 2 "foo") (list 3 4"bar")) if (var)=nill Do (1 2 Foo) else (3 4 bar)
List Processing Language • Lambda(to assign A variable) (lambda (arg) (+ arg 1)) =>arg=arg+1 ((lambda (arg) (+ arg 1)) 5) =>arg =6
Lists In PROLOG • Example : [mia, vincent, jules, yolanda] • Dealing With List: [Head| Tail] = [mia, vincent, jules, yolanda] means:- Head = mia Tail = [vincent,jules,yolanda] yes
Example: Concatenation In an imperative language list procedure cat(list a, list b) { list t = list u = copylist(a); while (t.tail != nil) t = t.tail; t.tail = b; return u; } In a functional language cat(a,b) if b = nil then a else cons(head(a), cat(tail(a),b)) In a declarative language cat([], Z, Z). cat([H|T], L, [H|Z]) :- cat(T, L, Z).
Example in PROLOG ( Fact&Rule) Predicate Procedure for elephant Facts elephant(george). elephant(mary). elephant(X) :- grey(X), mammal(X), hasTrunk(X). Clauses Rule
Example in PROLOG ( Fact&Rule) ?- elephant(george). yes ?- elephant(jane). no Queries Replies
Execution of Prolog Programs • Prove that goal is satisfiable • Search of facts/rules is top-down • Execution of sub-goals is left to right • Closed-world assumption: • – anything not in database is false • Integer calculation, I/O don’t fit well into logical proof search
Applications of Prolog:- • Expert systems • Relational database queries • Parsing of context-free languages • Natural language processing • Teaching programming • , as early as in grade school
LISP Compiler • BEE • POPLOG • LISP WORKS • GNU C LISP • PROLOG Compiler • B-Prolog • GNU Prolog • C# PROLOG • Open Prolog • Strawberry Prolog
References • Paul Brna ,Prolog Programming A First Course. • Fernando C. N. Pereira , Stuart M. Shieber ,Prolog and Natural Language Analysis. • Ulf Nilsson , Jan Maluszynski ,Logic Programming and Prolog 2nd edition. • Amzi ,Adventure in Prolog. • - Patrick Blackburn, Johan Bos , Kristina Striegnitz , Learn Prolog Now! • http://en.wikibooks.org/wiki/Prolog/Math,_Functions_and_Equality • http://en.wikipedia.org/wiki/Prolog • http://en.wikipedia.org/wiki/Lisp_(programming_language)