Program comprehension is important in program testing, debugging, and maintenance. Programming style impacts program understanding. However, there has not been any systematic identification of individual style factors and their contribution to program comprehension. In this thesis we present a programming style taxonomy composed of three classes: typographic (program layout and...
In this thesis we introduce alpha and beta tree acceptors,
generalizations of tree automata. The alpha tree acceptors recognize
a tree by final symbol and the beta tree acceptors by final state. We
show that alpha and beta tree acceptors recognize the same sets of
Gorn trees and demonstrate that...
Context-free grammars are adequate for specifying the structure of almost all programming languages. But in such specifications, it is difficult and time consuming to analyze a statement in the programming language to recognize its structural components.
Precedence grammars, a subset of the context-free grammars, were, developed for quick and easy...
Spreadsheet language programs, which include commercial spreadsheets, are among the most common form of software in use today. Unlike more "traditional" forms of software however, spreadsheet language programs are created and maintained by end-users with little or no programming experience. As a result, a high percentage of these programs contain...
Controlling the "complexity" or "understandability"
of computer software is important because of its impact on
program testing and maintenance. Of the large number of
complexity metrics that have been developed to measure the
complexity of a computer program, most assess the
"micro-complexity" of each subprogram and few assess the
"macro-complexity"...
Tree systems are used in syntactic pattern recognition for
describing two-dimensional patterns. We extend results on tree
automata with the introduction of the subtree-invariant equivalence
relation R. R relates two trees when the appearance of one implies the
appearance of the other in similar trees. A new state minimizing
algorithm...
Guidelines for using style to improve computer program comprehension
have often been proposed without empirical testing. This thesis reports on the
results of three controlled experiments that investigated ways program style may be
used to aid comprehension of source code listings.
Experiments 1 and 2 were conducted using advanced computer...
Prettyprinters are software tools that format program source code so that it conforms to certain standards of consistency and hence improves readability. Traditionally, these standards were fixed for a particular prettyprinter as indicated by a literature survey, with very little or no supporting evidence that the formatting style improves readability....
End-user programmers are writing an unprecedented number of programs, due in large part to the significant effort put forth to bring programming power to end users. Unfortunately, this effort has not been supplemented by a comparable effort to increase the correctness of these often faulty programs. To address this need,...