Jason,

>    Bjorn> A good starting point is "Program Understanding - A Survey"
>    Bjorn> by von Mayerhauser and Vans:
>
>    Bjorn> http://citeseer.nj.nec.com/vonmayrhauser94program.html
>
>I conjecture that experiments might find that program structure is
>informed by the particular abstraction experiences of the individual
>programmer. For example, those that have written or maintained

I agree.

>compilers, interpreters, parsers, smart editors, or other programming
>tools that process programs probably have a model that is closer to
>the lexical and grammatical structure. More generally it might be

This view probably reflects your own abstraction of what compiler
writers do :-)  In practice these are minor issues that are often automated.

As a compiler/interpreter writer I find that my view of source does
depend on what I am working on.  For instance, I might pay
particular attention to sequences of statements, or complicated expressions,
because lots of effort has gone into optimizing such constructs and
I will look for patterns that I expect to be commonly contained in such
code.  If I am working on flow analysis I will look at the data or control
flow.  If somebody shows me some of their source I will often try and
figure out what other languages they have used, based on how they have
used various constructs.

>found that the typical metaphors and structures of their own
>programming work are projected onto any tools and languages they might
>use. For example, everything might smell like a database to someone
>whose sole deeper technical exposure is to databases. Of course, this
>is just a specific case of projecting mechanisms onto black boxes.

Of course the problem with novices is that they don't know any structures
and usually have some very surprising beliefs about how programming
works.

I think researching novice analysis of program structure is a waste
of time because they rarely have enough experience (even after 3 years)
to have acquired any expertise on the subject.  To me undergraduate,
and even graduate, code feels like it has been thrown together, made
to work (at least to satisfy the homework assignment) and "I can recite
the mantra I learnt in class while waving my hands over the source".

However, I think researching novice belief systems about programming
would be very interesting (and perhaps even useful).  To many students
programming has the aura of magic and I think the psychology of folk
mythology would be very applicable.

The classic example is students who think that incrementing a variable
used to hold input data will cause the next item of input to be read.
A corpus of such beliefs would provide useful input to the question of
how best to teach programming (some teaching might be based on using
existing beliefs, or it might be based on changing them).


derek

--
Derek M Jones                                           tel: +44 (0) 1252 520 667
Knowledge Software Ltd                            mailto:[EMAIL PROTECTED]
Applications Standards Conformance Testing   http://www.knosof.co.uk


 
----------------------------------------------------------------------
PPIG Discuss List ([EMAIL PROTECTED])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/

Reply via email to