January 1982 - Vol. 25 No. 1
Features
Some practical experience with a software quality assurance program
Within a production programming environment, a software quality assurance program (QAP) was instituted to produce standards, conventions, and methodologies for all phases of the software development process. Software language standards and several support processors, in turn, developed. The authors offer a plan which may help others avoid some of the pitfalls they experienced while attempting to construct a meaningful software QAP.
DIAGRAM: a grammar for dialogues
An explanatory overview is given of DIAGRAM, a large and complex grammar used in an artificial intelligence system for interpreting English dialogue. DIAGRAM is an augmented phrase-structure grammar with rule procedures that allow phrases to inherit attributes from their constituents and to acquire attributes from the larger phrases in which they themselves are constituents. These attributes are used to set context-sensitive constraints on the acceptance of an analysis. Constraints can be imposed by conditions on dominance as well as by conditions on constituency. Rule procedures can also assign scores to an analysis to rate it as probable or unlikely. Less likely analyses can be ignored by the procedures that interpret the utterance. For every expression it analyzes, DIAGRAM provides an annotated description of the structure. The annotations supply important information for other parts of the system that interpret the expression in the context of a dialogue.
Major design decisions are explained and illustrated. Some contrasts with transformational grammars are pointed out and problems that motivate a plan to use metarules in the future are discussed. (Metarules derive new rules from a set of base rules to achieve the kind of generality previously captured by transformational grammars but without having to perform transformations on syntactic analyses.)
Generating gamma variates by a modified rejection technique
A suitable square root transformation of a gamma random variable with mean a ≥ 1 yields a probability density close to the standard normal density. A modification of the rejection technique then begins by sampling from the normal distribution, being able to accept and transform the initial normal observation quickly at least 85 percent of the time (95 percent if a ≥ 4). When used with efficient subroutines for sampling from the normal and exponential distributions, the resulting accurate method is significantly faster than competing algorithms.
Control flow and data structure documentation: two experiments
Two experiments were carried out to assess the utility of external documentation aids such as macro flowcharts, pseudocode, data structure diagrams, and data structure descriptions. A 223 line Pascal program which manipulates four arrays was used. The program interactively handles commands that allow the user to manage five lists of items. A comprehension test was given to participants along with varying kinds of external documentation. The results indicate that for this program the data structure information was more helpful than the control flow information, independently of whether textual or graphic formats were used.