From: Arthur T. Murray
Subject: Explaining how a (Mind) program works
Date: 
Message-ID: <3f7485ee@news.victoria.tc.ca>
"Bill Modlin" <·······@metrocast.net> wrote on Fri, 26 Sep 2003: 
<snip>
>>> If I wanted to explain how one of my programs worked
>>> I would not give someone a print out of the code. 
>>> First I would explain it in higher level (folk psychology?) 
>>> terms and then explain how I embodied these ideas in actual code.
 
>> I'm not sure why - especially if the person you're explaining it to
>> is a programmer and knows the language.
BM:
> For the same reason that all good programs are liberally annotated
> with comments.  Programming languages are for controlling computers,
> not for communicating with people.  It is laborious and error prone
> to attempt to discover the purpose of an algorithm implemented by
> a bit of code just by inspecting that code.
ATM:
Nevertheless the original source code has to be made available, e.g.
http://www.scn.org/~mentifex/jsaimind.html -- AI Mind in JavaScript;
http://mentifex.virtualentity.com/mind4th.html -- Mind.Forth PD AI.

BM:
> This is true even for the original author of the code.
> Code that seemed crystal clear and obvious at the time
> you wrote it is often indecipherable when a year later
> you are called upon to adjust or fix it in some fashion.

ATM:
The factoring of Forth and the hierarchy of objects help here,
plus liberal comments and statements at the end of each Mind-
Module explaining to what other Module program-flow returns:
http://mentifex.virtualentity.com/progman.html -- Modules.

BM: 
> Of course, the extensional function of each line of code is obvious
> to anyone who knows the language.  There is no mystery in a line of
> code that says to increment the value of some variable by two:
> it says exactly what is to happen.  [...]

> Literal quoting of code is sometimes a useful adjunct to understanding
> of function.  We all generally like to have actual source to work with.

Yes, and so the AI4U (AI For Your) textbook of artificial intelligence at
http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?ISBN=0595259227 
contains a full source-code listing of the AI Mind-1.1 in MSIE JavaScript.
On September 24, 2003, a rather mean-spirited reviewer at B&N, hiding 
behind anonymity, complained that "This book is not really a textbook 
because it explains nothing. It rather is a collection of 'modules' 
which the author expects the reader to implement" -- without pointing out
that the AI Mind modules are already implemented at the end of the book.

Now this author is indeed trying to get Minds coded in XYZ languages:
http://mentifex.virtualentity.com/cpp.html -- C++ with new AI code;
http://mentifex.virtualentity.com/java.html -- see Mind.JAVA #1 & #2;
http://mentifex.virtualentity.com/lisp.html -- Lisp AI Weblog;
http://mentifex.virtualentity.com/perl.html -- first Perl module;
http://mentifex.virtualentity.com/prolog.html -- Prolog AI Weblog;
http://mentifex.virtualentity.com/python.html -- Python AI Weblog;
http://mentifex.virtualentity.com/ruby.html -- Ruby AI Blog (OO AI);
http://mentifex.virtualentity.com/scheme.html -- Scheme AI Weblog;
http://mentifex.virtualentity.com/vb.html -- see "Mind.VB #001" link.

BM:
> But it is only an adjunct: the necessary ingredient for understanding
> of non-trivial function is explanation of the principles of operation
> in human-interpretable language.

ATM:
I have created every conceivable instrument of explaining the AI Mind.
http://mentifex.virtualentity.com/acm.html is Steps to DIY AI.
http://mentifex.virtualentity.com/standard.html -- AI Standards.
http://mentifex.virtualentity.com/variable.html -- AI Variables.

BM:
> Given the code one may never understand what it is for. 

ATM:
Recently I have been meeting in person with an incognito engineer
who has volunteered to attempt to translate (port) Mind.Forth into
http://mentifex.virtualentity.com/aicppsrc.html AI C++ Source Code.

BM:
> Given an understandable explanation of just what is to be done

ATM:
Nothing beats having a one-on-one interactive discussion of
what is to be done to code AI and how to do it.  That optimal
option is why I have a dreamworld fantasy of hiring out to CS
departments and AI labs to have my primitive but AI-coding
brain picked clean and dry of any contribution I make to AI.

> and how to do it, any programmer can produce new code
> for a function readily enough:  having an actual worked out
> version to go by is a dispensable luxury. [...]

A.T. Murray
-- 
http://mentifex.virtualentity.com/lisp.html -- Lisp AI Mind Weblog
http://www.amazon.com/exec/obidos/ASIN/0595654371/ -- AI Textbook;
http://www.sl4.org/archive/0205/3829.html -- Goertzel on Mentifex;
http://doi.acm.org/10.1145/307824.307853 -- ACM SIGPLAN Mind.Forth
From: Daniel Barlow
Subject: Re: Explaining how a (Mind) program works
Date: 
Message-ID: <878yobtllv.fsf@noetbook.telent.net>
·····@victoria.tc.ca (Arthur T. Murray) writes:

> "Bill Modlin" <·······@metrocast.net> wrote on Fri, 26 Sep 2003: 
> <snip>
>>>> If I wanted to explain how one of my programs worked
[...]

Please don't play silly buggers with the Newsgroups and Followup-To.
If I wanted to read this I wouldn't have killfiled all cross-posted
articles.


-dan

-- 

   http://www.cliki.net/ - Link farm for free CL-on-Unix resources