ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] new logic

To: "'[ontolog-forum] '" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "Rich Cooper" <rich@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 Jan 2010 11:41:35 -0800
Message-id: <20100121194142.6D61D138D3D@xxxxxxxxxxxxxxxxx>

 

 

Sincerely,

Rich Cooper

EnglishLogicKernel.com

Rich AT EnglishLogicKernel DOT com

 

John F. Sowa wrote:

 

Pat,

 

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).

 

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.

 

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.

 

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.

 

It might sound like a lot of work to specify all of that, but

just consider the following points:

 

  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.

 

  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.)

 

  3. People routinely write C programs to simulate computer

     hardware and software systems.

 

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.

 

John

 

 

 

_________________________________________________________________

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

 

 


_________________________________________________________________
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    (01)

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