[Top] [All Lists]

Re: [ontolog-forum] new logic

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Thu, 21 Jan 2010 02:31:11 -0500
Message-id: <4B5802BF.7030906@xxxxxxxxxxx>
Pat,    (01)

Alain Colmerauer, who implemented the first Prolog interpreter,
designed it to support machine translation.  It is still widely
used to implement parsers and compilers.  The basic operations
of parsing and generating can be implemented in pure Prolog
(i.e., without the procedural features).    (02)

PC> I'm still curious as to whether the conversion process
 > of a string of bits to or from Peano format is similarly
 > representable by FOL axioms.    (03)

For practical purposes, Prolog systems would have some built-in
predicates that convert a Prolog-style list, such as [1,0,1,1]
to a bit pattern stored in the basic hardware formats.    (04)

But all those bit patterns of the hardware are implemented in
logic circuits (mostly NAND and NOR circuits, which happen to
be easy to implement with transistors, but those operators are
no different in principle from the more familiar AND, OR, and
NOT operators).  Every level from the logic circuits on up
can be simulated in Prolog.    (05)

It might sound like a lot of work to specify all of that, but
just consider the following points:    (06)

  1. For specifications that do not require the procedural
     features of Prolog, there is a one-to-one mapping
     between Prolog statements and statements in pure FOL.    (07)

  2. Complex logical operations are much easier to specify in
     Prolog than in C.  (Typically 10 lines of C are needed to
     do the equivalent of 1 line of Prolog.)    (08)

  3. People routinely write C programs to simulate computer
     hardware and software systems.    (09)

If anybody doubts these points, just consider those two lines
of Prolog or CLIF that define add.  Try writing the equivalent
program in C -- i.e., represent each integer N by an expression
of the form S(S(S(0))) with N applications of S.    (010)

John    (011)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (012)

<Prev in Thread] Current Thread [Next in Thread>