Explaining how a (Mind) program works

Discussion in 'Python' started by Arthur T. Murray, Sep 26, 2003.

  1. "Bill Modlin" <> wrote on Fri, 26 Sep 2003:
    >>> 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.

    > 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.

    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.

    > 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.

    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.

    > 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
    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.

    > 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.

    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.

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

    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.

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

    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/python.html -- Python AI 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
    Arthur T. Murray, Sep 26, 2003
    1. Advertisements

  2. On 26 Sep 2003 11:56:06 -0800, (Arthur T. Murray)

    >> Programming languages are for controlling computers,
    >> not for communicating with people.

    Oh dear. I hope I never have to maintain any of your code :-(

    Actually, getting serious, I'm not going to jump to any conclusions
    about your coding style and I agree that access to the original
    author/earlier maintainers/additional documentation can be a great
    help when trying to understand code. It is easy to believe that your
    code expresses the 'why' as well as the 'how' when you are familiar
    with it, but to learn otherwise when someone else has to read it.

    But still, I think that statement is simply false. Source code should
    not just written to control computers, but also to be understood and
    maintained by people.

    Steve Horne

    steve at ninereeds dot fsnet dot co dot uk
    Stephen Horne, Sep 27, 2003
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Arthur T. Murray

    Explaining how a (Mind) program works

    Arthur T. Murray, Sep 26, 2003, in forum: Java
    Kent Paul Dolan
    Sep 27, 2003
  2. Arthur T. Murray
    E. Robert Tisdale
    Sep 26, 2003
  3. Replies:
    Abhishek Padmanabh
    Dec 18, 2007
  4. soleilmavis
    Feb 12, 2008
  5. Arthur T. Murray

    Explaining how a (Mind) program works

    Arthur T. Murray, Sep 26, 2003, in forum: Javascript
    Arthur T. Murray
    Sep 26, 2003
  6. Arthur T. Murray

    Explaining how a (Mind) program works

    Arthur T. Murray, Sep 26, 2003, in forum: Perl Misc
    Eric J. Roode
    Sep 27, 2003
  7. botfood
  8. dhtml