Pablo (and everyone),

Many thanks for the pointer to your thesis.  I started reading it and
find it extremely interesting.  I am also familiar with Wiedenbeck et.
al work on program comprehension.

However, it seems I was not very careful in phrasing my question.  The
structures I have in mind are not the plan-like structures corresponding
to the programmer's structural model of a program.  Rather, I am
interested in programmer's perception of the organizational rules for
programs in a particular programming language.  (The former is the
property of a  program; the latter is the property of a programming
language.)  What I call "organizational rules" (bad terminology?) is
something devised by the language designer.  For instance: "Java
packages are composed of classes", "class declarations consist of method
and field declarations", etc.  My intuition is that the rules put forth
by the language designer might differ (at least in granularity) from the
rules perceived by a programmer.  (As many have already noted,
programmers degree of expertise in language-based tools may greatly
affect his perception of the language rules.)

To give a bit more context for my work: I am trying to design an
intuitive (to the programmer) data model for representing Java programs
as well as a (meta)programming language for manipulating this model.
Because programs in this language are meant to be composed and
understood by an "end-programmer" (as opposed to a tool-builder), I am
turning to PP research for some insight and guidelines for building this
tool.

Thanks to everyone who has already responded to my query and to those
who might shed some more light on this issue!

Marat Boshernitsan.
Ph.D. Candidate
Computer Science Division, EECS
University of California at Berkeley

Pablo Romero wrote:

Hi Marat,
There are a number of studies in program comprehension, debugging and
code generation that have looked at programmer's mental
representations and in particular how these representations are
organised. Please look at my DPhil thesis for pointers on this:

http://www.cogs.susx.ac.uk/users/juanr/index.html

Or you can look at a summarised version in:

Romero,P (2001). Focal structures and information types in Prolog.
International Journal of Human Computer Studies. 54. p. 211-236.

Although this is for Prolog, there are a number of links to studies
for other languages.

If you are looking for studies specifically on Java, Susan Wiedenbeck
has looked at program comprehension for this language:

Wiedenbeck, S., & Ramalingam, V. (1999). Novice comprehension of small
programs written in the procedural and object-oriented styles.
International Journal of Human Computer Studies, 51, 71–87.

Wiedenbeck, S., Ramalingam, V., Sarasamma, S., & Corritore, C. L.
(1999). A comparison of the comprehension of object-oriented and
procedural programs by novice programmers. Interacting with Computers,
11, 255–282.

Regards,

Pablo.

On 13 Feb 2004, at 08:37, Marat Boshernisan wrote:

I am looking for insight on how programmers perceive organizational
structure of computer programs.

For instance, do programmers recognize Java programs as consisting of
packages, which are composed of classes, which, in turn, consist of
method and field declarations?  If so, what are the natural "atomic
units" of such a hierarchization?  Clearly, programmers do no go as
far as viewing program tokens as consisting of individual characters,
though I am sure there are situations in which humans perceive
individual words as constructed from smaller units.  (Note that I am
interested in the *perceived* structure, as opposed to the structure
defined by a formal programming language grammar.)

While there may be little (none?) prior work in this domain
pertaining to programmers, I have a feeling that there should be some
existing psychology research that can be applied in this context.
Perhaps there's even a formalizm for describing hierarchival
composition of categories?  (Something akin to formal grammars?)

Understanding programmer's perception of program structure is central
to my Ph.D. research and unless I can find existing studies, I will
run user experiments to fill in this gap.  However, at the very
least, I am hoping to find a starting point for devising such a study.

Naturally, I tried looking on various search engines, but I am
affrain I do not know appropriate terminology.  So even pointers in
that direction will be greately appreciated.

Thank you!

Marat Boshernitsan.
Ph.D. Candidate
Computer Science Division, EECS
University of California at Berkeley


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

Pablo Romero
Human Centred Technology Group
Informatics Department
Sussex University
BN1 9QH



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