 
  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 13:25, local time: 2025/10/30 23:53, 
owner: AAM-IRE-RAS-F7C, 
 
216.73.216.212,10-3-97-86:LOG IN | 
|  | ©2025 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://massmind.org/techref/language/prolog/index.htm">  - Prolog</A>
 | 
| Did you find what you needed? | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.