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
https://sites.google.com/site/sengwloke/home.
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.
-
http://www.swi-prolog.org/ SWI Prolog
is a GNU free language.
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. ;-)
See also:
"Prolog is 'Jeopardy!' for
programmers."
+
file: /Techref/language/prolog/index.htm, 14KB, , updated: 2020/6/13 12:25, local time: 2024/11/25 22:15,
owner: AAM-IRE-RAS-F7C,
|
| ©2024 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? <A HREF="http://sxlist.com/Techref/language/prolog/index.htm"> - Prolog</A> |
Did you find what you needed?
|
.