One can use the Prolog word in the following
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
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
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
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
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
There are some papers (written in English) when you can find some interesting
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.
The article will help you to compare some basic logical and object-oriented
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. -
This paper is devoted to the concurrent computing model of
The home page of Andrew Davison
There are some very useful articles and surveys on the site:
Research papers of Paul Tarau
Paul Tarau is creator of
BinProlog. There are very interesting
papers and open projects.
The Web site of Anton Eliens
There are a lot of interesting research projects linking logic programming,
Web agents, and virtual reality.
Home page of Seng Wai Loke
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.
Do not forget to visit Web site of Visual
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
Prolog is created by Cedric Luiz de Carvalho
Source files written in Visual Prolog
The site of Serguei A. Penkov
contains open source collection of various programming objects in
and information on his
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.swi-prolog.org/ SWI Prolog
is a GNU free language.
There are some big sites devoted to
Alexei A. Morozov
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
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. ;-)
| ||©2014 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://techref.massmind.org/techref/language/prolog/index.htm"> - Prolog</A>
Welcome to techref.massmind.org!