[OT] Eternal programming

Dennis E. Hamilton dennis.hamilton at acm.org
Sun Jul 8 17:10:41 EDT 2001


The operation you refer to as a/b is called not-and or "nand" in English.
It is also called "stroke" or Sheffer stroke (and typed as a|b).  Whitehead
and Russell [1] used it to demonstrate that propositional logic can be
developed with a single primitive, as you notice.

For computational logic, a better primitive is based on

	if p1 then a1 else a2

which includes conditional evaluation (that is, a1 and a2 are not evaluated
and are not required to be definite until p1 is determined and one of the
alternatives is selected).  This allows all of the appropriate definitions
for constants in propositions:

	not(x) = if x then false else true
	and(x,y) = if x then y else false
	or(x,y) = if x then true else y

and so on.  (The definitions for and() and or(), if taken to require x and y
by value, place additional conditions on the arguments that the conditional
forms do not, however.)

This one primitive computational structure, along with an agreement on what
is taken for truth and falsity (in the evaluation of p1) is sufficient
primitive structure for the logical part of computation.  (My approach is to
have identity, a=b be the basic grounded proposition, with the other two
required operations being eval(x) and apply(x,y).  There is a single
very-primitive data type that is sufficient for universal computation, but
not for practical application.  I would build up text processing as critical
because the key thing to have next is the ability to communicate between the
"internal world" of the mechanism and the "external world" where users
express things in their theories (whether for arithmetic, logic, or more
interesting theories with computational models) rather than the mechanism's.

I subscribe to the concept behind Eternal Programming and am already at work
on it!

I created http://www.infonuovo.com/miser as a place for me to develop my
thoughts on this.  I have started with broad principles and I will address
the Eternal Programming concepts somewhere along the way.  The Miser Project
was always intended to satisfy that requirement, though I hadn't identified
it with such a well-defined set of conditions.  I like what you (and Guido)
have done in this area and intend to use it.

-- Dennis

Dennis E. Hamilton
AIIM DMware Technical Coordinator
------------------
mailto:dennis.hamilton at acm.org  tel. +1-425-793-0283
http://www.dmware.org           fax. +1-425-430-8189
     ODMA Support http://www.infonuovo.com/odma

[1] Whitehead, Alfred North., Russell, Bertrand.
    Principia Mathematical to *56.
    Cambridge University Press (1910, 1927, 1962, 1997).
    ISBN 0-521-62606-4.
    This insight is discussed in the Introduction to the
    Second Edition, on pp. xiii to xvi.
    It is also possible to use nor = (not (a or b)) as the
    single primitive proposition.


-----Original Message-----
From: python-list-admin at python.org
[mailto:python-list-admin at python.org]On Behalf Of Roman Suzi
Sent: Sunday, July 08, 2001 00:07
To: python-list at python.org
Subject: Re: [OT] Eternal programming


On Sun, 8 Jul 2001, Bengt Richter wrote:

>On Sat, 7 Jul 2001 17:55:56 -0700, "John Roth"
><johnroth at ameritech.net> wrote:
>>I don't see why it couldn't be of much more utility. The big problem is
>>performance, since you're talking about a two level interpreter. The last
>>time I saw anything quite that slow was a /360 running a 1410 emulator
>>running a 650 simulator.
>I am getting the impression there's a lot of OF's around here ;-)
>I remember when you could go to any IBM office and get an armload
>of system and programming manuals just for the asking. The 650 manual
>was the first computer manual I ever looked at ;-)
>
>>
>>Very interesting idea. The trouble is, I can't see it being really small.
>>Making it cleanly extensible seems to require some of the features that
>>support extendability, such as namespaces (Forth dictionaries), etc.
>>
>>Anyone want to work on it - either technically or politically?
>Well, the nuclear waste problem is probably the most eternal thing
>we've managed to create yet, so there ought to be application
>for 'Eternal' somehow with that ;-/
>
>Actually, I think there are people very concerned about the viability
>of digital archives from the point of view of survivability of
>the access methods and devices. I'd bet the Library of Congress has
>folks worrying about this.

I am glad to see biological examples. Eternal program is like seed
which could grow around small rightly built environment.

The problem, as I see it now, is scientific: which features
to include to the core. For example, if one want to do logic,
there is only one operation needed (i do not know how to call it in
English:

X    Y      X/Y
0    0      1
1    0      1
0    1      1
1    1      0

With this single operation you can build any boolean operation:

not X  ==  X/X
X and Y  == not(X/Y) == (X/Y)/(X/Y)
X or Y == (not X)/(not Y) == (X/X)/(Y/Y)

and so on!

I believe, that there is some set of operations which is as general as
Turing machine BUT is easily evolutionable into something practical.
The above means you need to implement only one operation and library
will create: AND, OR, XOR, NOT, ... whatever.

Same applies to arithmetics. Field operations need to be
supplied: x+y, -x, x*y, 1/x.

I think Eternal will also need strong text-processing capabilities.
Thus minimal DFA regex need to be built in. (this is beneficial to
core itself, because it will need some parser and the parser could be
available for program evolution as well.) Deterministic Turing machine
is DFA + potentially unbounded memory to play on.

It's really interesting reasearch which (probably) nobody has done
yet.

[ ... ]


Sincerely yours, Roman Suzi
--
_/ Russia _/ Karelia _/ Petrozavodsk _/ rnd at onego.ru _/
_/ Sunday, July 08, 2001 _/ Powered by Linux RedHat 6.2 _/
_/ "The days of the digital watch are numbered" _/


--
http://mail.python.org/mailman/listinfo/python-list





More information about the Python-list mailing list