Close

What answer would please you the most?

A project log for Prometheus A.I.

One set of rings that will control all.

glgormanglgorman 08/08/2022 at 02:520 Comments

I found the original source code for Eliza, as it was written in MAD SLIP.  Unfortunately, when I tried OCR in Adobe Acrobat - the text is hopelessly garbled.  So that the original Eliza script looks something like this - if you let the OCR pretend that it knows what it is doing.

(DOES IT PLEASE YOU TO BELIEVE THAT) 
C::O YO!..: SOMETI.'·~ES i..JI SH YCU H::R::- 4) 
(PE~~AP$ YOlJ VlO~LO LIKE TO 3E 4)) 
( { 0 ! D YJU) {iil-lY DO YOU Tf-ll \K 1 3 y~~) 
(YO:...: LIKE TO THINK I 3 YOU - CO~~ 1 T Y-2\...}

Now I am not going to jump on the bandwagon that is going around, (just yet) about some notion that because of AI computers have invented their own language, which scientists can't understand.  Really, it's just garbled scanned text.  Or at least it is for now.  Yet what if we invented a programming language where there is no such thing as a syntax error, so that anything will compile, and possibly execute?  Obviously, if Conway's Game of life is known to be Turing complete, then, at least in principle, it should be possible to implement some type of ostensibly sentient A.I. that, might work like ELIZA or GPT-N, that is when equipped with some kind of learning mode that allows the user to explain to it things like the fact that "a boat might be a kind of thing that fills a hole in the water that you throw money into.", and so on.  This is already led to some dubious results, for others, which I won't go into further - here, just yet.

Instead, I have taken to the task of retyping the original MAD SLIP source code for Eliza into a fresh text file, hopefully with far fewer garbled characters than what Adobe seems to be able, or otherwise completely unable to do.

CHANGE MAD
          EXTERNAL FUNCTION (KEY,MYTRAN)
          NORMAL MODE IS INTEGER
          ENTRY TO CHANGE.
          LIST.(INPUT)
          V'S G(I)=$TYPE$,$SUBST$,$APPEND$,$ADD$,
          1$START$,$RANK$,$DISPLAYA$
          V'S SNUMB = $ I3 *#*$
          FIT=0
CHANGE    PRINT COMMENT $PLEASE INSTRUCT ME$
          LISTD.(mtlist.(INPUT),0)
          JOB=POPTOP.(INPUT)
          T'H IDENT, FOR J=1,1, J.G. 7
IDENT     W'R G(J) .E. HOB, T'O THEMA
          PRINT COMMENT $CHANGE NOT RECOGNIZED$
          T'O CHANGE
THEMA    W'R J .E. 5, F'N IRALST.(INPUT)
         W'R J .E. 7
              T'H DISPLA, FOR I=0,1, I .G. 32
              W'R LISTMT.(KEY[I]) .E. O, T'O DISPLA
READ(7)          S=SEQDR.(KEY[I])
              W'R F .G. O, T'O DISPLA
              PRINT COMMENT $*$
              TPRINT.(NEXT,0)
              PRINT FORMAT SNUMB,I
              PRINT COMMENT $ $
              T'O READ(7)
DISPLA        CONTINUE
              PRINT COMMENT $ $
              PRINT COMMENT $MEMORY LIST FOLLOWS$
              PRINT COMMENT $ $
              T'H MEMLST, FOR I=1 , 1, I .G. 4
MEMLST        TXTPRT.(MYTRAN(I),0)
              T'O CHANGE
          E'L

Now actually, there are about seven pages of this stuff, that I am in the process of cleaning up, and which of course adds yet one more TODO to be done to my bucket list of things to be done, and that would of course be - why not implement "just enough MAD-SLIP" to run on an Arduino or a Propeller, so we can finally have the "original", or at least feel a little closer to the metal than some java-script implementations, no matter how nice, etc.  Apparently, the IBM 7090 had something like 64K of core memory, arranged as 32768 16-bit words.  So that sort of thing seems reasonably doable - at least as far as memory footprint requirements are concerned, and not according to whether there should be any need to have actually compile and run this on an IBM 7090 in emulation, even if stuff like that exists in Hercules.  No thank you, at least not yet.  I don't really like anchovies either.

Yet here we can easily see where ELIZA had a mode, where she could say "Please Instruct Me", or "Change not recognized?"  So there WAS a learning mode!  Or there was one in the works!  Now the challenge begins to take on a different flavor, and that is not just to implement LISP, MAD SLIP, Pascal, and C, and so on - in a suitable microcontroller environment - but to REALLY "Hack it back", by perhaps getting "just enough Turning completeness" into the C/C++ pre-preprocessor, or EBNF lexer, or whatever, hopefully, Eliza style. 

Now, obviously a certain amount of mystery, unpredictability, or undecidability, that is, even if it is as a consequence of the halting problem, isn't quite the same as sentience.  Yet it looks more and more likely that at least some form of experimental deep learning is very doable on a microcontroller.

Discussions