A
Arthur T. Murray
ATM:Bill Modlin said: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 and algorithm implemented by
a bit of code just by inspecting that code.
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