473,804 Members | 2,100 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Explaining how a (Mind) program works

"Bill Modlin" <mo*****@metroc ast.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/boo...SBN=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/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
Jul 18 '05 #1
1 2207
On 26 Sep 2003 11:56:06 -0800, uj***@victoria. tc.ca (Arthur T. Murray)
wrote:
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
Jul 18 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
8529
by: anuradha.k.r | last post by:
hi, i am writing a socket program in python,both client side and server side.I've written the client side which is working perfectly fine(checked it against server program written in C).but as for my server program written in python it simply hangs.it does not show any error also.I've tried sample programs available .I don understand what the reason is as i am quite new to it. here is teh server side program: ///////////////////////
11
2570
by: Arthur T. Murray | last post by:
Now, suppose that you wanted to write an AI in Python that would implement your mind-model and allow it to grow, mutate, develop. Here is one possible scenario. It would not be necessary to do all the work yourself. If we began coding a baby Mind.py and published the initial code out on the Web, other Python programmers might start adding to it and start specializing in the refinement of hotspots. ...
42
2059
by: Mike P. | last post by:
Hello I come from the world of C++ programming, and I'm used to writing programs that are actually executed by the CPU, and that run with some semblance of performance. I have taken the time to explore this .NET thing, and found that not only do .NET applications run extremely s-l-o-w-l-y, but the various .NET languages amount to nothing more than interpreted script languages. It is the common language run-time that actually executes your...
8
2784
by: Jerry Khoo | last post by:
hello, everybody, i am kinda new here, nice to meet u all. Now, i am cs students and are now facing difficult problems in understanding what a binary tree is, how it works, and the algorithm to display, arrange, find, delete the leaf node in binary tree. I hope that anyone with expereince in building binary tree could help me in explaining the binary tree functions, and give a sample code of the whole picture behind the tree. And...
8
1992
by: Will Chamberlain | last post by:
I came across a rather interesting article this morning and thought I'd share. We all know that Visual Studio is a great IDE, but I think we can all agree that it is adds a dramatic change to how we write code. I'm not posting to talk trash or start a flamewar, just wanting feedback in regards to the following article. I happen to use Visual Studio on a daily basis and am not a John Rivers alter-ego. ...
11
2214
by: Wayne | last post by:
I am a one man enterprise and have been asked by a prospective client what happens to their database regarding ongoing changes etc if I get hit by a bus. Obviously my databases are distributed as mde files in an effort to protect my intellectual property. How do I give the client peace of mind, short of giving them a backup mdb file that any programmer could work on to provide required changes etc if I wasn't around? Of course this...
4
2537
by: dhilipsiva | last post by:
hi all! I've developed a mind reader program using C . By showing you trails of two slides it will determine the value that u r thinking in ur mind (0-99). those who intrested in this program just reply me . and u'll send it 4 u. bye all !!!!!!!!!
0
10343
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10341
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10089
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7634
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5530
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5673
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4308
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3831
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3001
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.