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