Prolog
One can use the Prolog word in the following meanings:
-
Prolog is the name of the first logic language designed in the Universite d'Aix Marseilles in 1972 (See the Web page of Alain Colmerauer http://www.lim.univ-mrs.fr/~colmer/). This language has a long history. You can call this language also the Clocksin-Mellish Prolog (It is one of the first and most known book about the Prolog:
Clocksin W.F. and Mellish C.S Programming in Prolog). Now the modern ISO Standard of Prolog is based on the ideas of this language.
-
It is a tradition in the field of the logic programming to use the Prolog word as the part of names of programming languages, for instance: Turbo Prolog, LPA Prolog, etc. So, do not ask me "Why there is only one logic language, Prolog?!" Actually, there are a lot of logic languages. Most of them are Prologs. But these languages are different ones.
-
Some people use the Prolog name as a synonym of the logic programming. So, Prolog is not only the programming language, but also the direction in mathematics and computer science.
Well, what is the difference between the logic languages and non-logical ones? There is some very simple criterion to identify a logic language:
-
Any logic language should include some subset (one can say pure Prolog) supporting so-called model-theoretic semantics. It means that any program written in this subset of the language could be converted into a formula of first-order logic (or higher one). Also, some subset of the formulas of the first-order logic can be converted into this pure subset of the programming language. So, pure Prolog is simply yet another format for writing logic formulas.
-
The rules of execution of logic program should be sound according to the model-theoretic semantics of the program. It means that program should never compute the (incorrect) solutions, that are not a logical consequence of the program (the program is the logical formula, as we know).
-
The rules of execution of the program should be complete according to the model-theoretic semantics of the program (at least in the cases when infinite calculations do not occur!). It means that the program should calculate all the solutions that are a logical consequence of the program. It is one of the most powerful idea of logic programming:
one can use a logic language for exhaustive search, if s/he actually need it.
The problem is that most of practical logic languages have non-logical features that have no model-theoretic semantics. But any logic language should contain some pure kernel!
So, if somebody tells you that s/he has developed some logic language, firstly ask s/he the following questions:
- What are the main concepts and features of the language?
- Are these features pure in the logical sense?
If there are some important concepts in the language that do not support model-theoretic semantics, it means that the author left the intriguing possibility of creating completely logical programming language. So, be careful: a lot of Prologs are not logic languages at all (they have no pure kernel)! It is a great challenge to develop some correct logic language with the modern features (object-oriented, concurrent, agent-based, visual, etc.)
I recommend you to visit the following sites before starting your own research in the field of logic programming:
-
Actor Prolog is an object-oriented logic language with classical model-theoretic semantics. It is developed in the Institute of Radio Engineering and Electronics of Russian Academy of Sciences: http://www.cplire.ru/Lab144/index.html. There are some papers (written in English) when you can find some interesting links.
- Morozov A.A. Actor Prolog: An Object-Oriented Language with the Classical Declarative Semantics // K.Sagonas, P.Tarau, editors, Proc. of IDL'99 workshop, Paris, 1999. http://www.cplire.ru/Lab144/paris.pdf. The article will help you to compare some basic logical and object-oriented concepts.
- Morozov A.A., Obukhov Yu.V. An Approach to Logic Programming of Intelligent Agents for Searching and Recognizing Information on the Internet // Pattern Recognition and Image Analysis. - 2001. - Vol.11. - No.3. - pp.570-582. http://www.cplire.ru/Lab144/pria570m.pdf. This paper is devoted to the concurrent computing model of Actor Prolog.
-
The home page of Andrew Davison http://fivedots.coe.psu.ac.th/~ad/. There are some very useful articles and surveys on the site:
- Research papers of Paul Tarau http://www.cs.unt.edu/~tarau/. Paul Tarau is creator of BinProlog. There are very interesting papers and open projects.
- The Web site of Anton Eliens http://www.cs.vu.nl/~eliens/research/logic/index.html. There are a lot of interesting research projects linking logic programming, Web agents, and virtual reality.
-
Home page of Seng Wai Loke http://goanna.cs.rmit.edu.au/~swloke/. See his Ph.D. thesis on Web logic programming.
-
The Web page of Vyacheslav A. Petukhin http://www.isu.ru/~slava/. The site contains information about Russian projects in the field of logic programming.
-
GNU Prolog is a free implementation (under GPL) of the ISO Prolog.
It can compile into native machine code which is extremely fast in execution.
Another feature is the included constraint solver.
http://sourceforge.net/projects/gprolog/.
-
Do not forget to visit Web site of
Visual Prolog
http://www.visual-prolog.com.
Visual Prolog is the descendant of Turbo Prolog and
PDC Prolog languages. It is not yet another implementation of ISO Prolog. Visual Prolog is completely different logic language with powerful type system and Windows programming interface. I use Visual Prolog many years in my research projects. From my point of view, it is one of the most professional implementations of the idea of logic programming.
-
Net Prolog is a logic programming system that generates a binary code, that is executable in the Java Virtual Machine (JVM). Net Prolog is created by Cedric Luiz de Carvalho (http://www.inf.ufg.br/~cedric/eng_main.htm). Source files written in Visual Prolog are available. http://netprolog.pdc.dk/.
- The site of Serguei A. Penkov (http://www.ezy-software.com) contains open source collection of various programming objects in Visual Prolog. http://users.tpg.com.au/adsluwfl/vpstudio/index.htm and information on his EZY Prolog.
- The site of Paulo Jorge Lopes de Moura contains information on his project Logtalk and some links to the Web resources on logic OOP.
http://www.ci.uc.pt/logtalk/manuals/index.html.
There are some big sites devoted to Prolog:
Best regards,
Alexei A. Morozov
morozov@mail.cplire.ru
Questions:
-
-
Ahsen Tahir Sheikh of AND OR logic asks: "
Can i build fuzzy expert system in visual prolog, which is the best package for building a fuzzy expert system"
+
-
What is the major difference between Turbo Prolog and Visual Prolog in terms of user interface?
Turbo Prolog has DOS (text mode) user interface, but Visual Prolog has modern event-driven graphic user interface under Windows. In some sense, Visual Prolog is the recent version of Turbo Prolog. ;-)
| file: /techref/language/prolog/index.htm, 12KB, , updated: 2008/1/31 17:19, local time: 2008/5/15 11:14,
owner: AAM-IRE-RAS-F7C,
|
| | ©2008 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? Please DO link to this page! Digg it! <A HREF="http://techref.massmind.org/techref/language/prolog/index.htm"> - Prolog</A> |
| Did you find what you needed?
|
.