This paper describes an experiment in program testing, employing 59 highly experienced data processing professionals using seven methods to test a small PL/I program. The results show that the popular code walkthrough/inspection method was as effective as other computer-based methods in finding errors and that the most effective methods (in terms of errors found and cost) employed pairs of subjects who tested the program independently and then pooled their findings. The study also shows that there is a tremendous amount of variability among subjects and that the ability to detect certain types of errors varies from method to method.
A recent paper has described a graph-theoretic measure of program complexity, where a program's complexity is assumed to be only a factor of the program's decision structure. However several anomalies have been found where a higher complexity measure would be calculated for a program of lesser complexity than for a more-complex program. This paper discusses these anomalies, describes a simple extension to the measure to eliminate them, and applies the measure to several programs in the literature.
Stack-oriented (reverse-Polish-oriented) instruction sets have been claimed to be superior to register-oriented instruction sets.This paper refutes this claim and also shows that a third form is more desirable.Claims have been madeo often emotional in nature [ I], that stack-oriented instructio-s sets (i.e., machines where the majority of instructions implicitly refer to operands on the top of a pushdown stack) are superior to the more-common register-oriented instruction sets.The usual arguments are:I."The code representation roll stack machines] requires much less space than alternative instruction forms with equal range of reference."[ I] "The stack machine, with its zero addresses per instruction, thus appears to be the ultimate step in this trend toward code compaction." [ 2 ] 2. The number of instruction elements (e.g., operation codes, addresses) which must be decoded by the processor is fewer in a stack-oriented machine[ 3 ].
3.The code-generation process of a compiler is simpler for a stack-oriented machine.The first argument will be shown to be false, the second argument will be shown to be insignificant, and the third argument will be discounted by illustrating a third instruction-set form for which code generation is easier. It should be noted that this discussion only applies to the use of stacks for expression evaluation. It does not refute the claim that stacks are waluable for subroutine management; one should realize that subroutine-managemeIlt stacks can De used with any instruction-set form.The first argument is most important, because the conciseness of an object program not only reduces storage requirements, but it increases performance by optimizing use of the processor/memory bandwidth.It can be shown, for program statements containing long arithmetic or logical expressions, that the instructions generated for a
The SWARD architecture, an experimental higher-level architecture, contains the naming and protection concept of capability-based addressing. After discussing the merits of capability-based addressing, its general representation in the SWARD architecture is discussed. The initial representation of capability-based addressing in the architecture led to a set of problems; these problems are described, as well as their solutions. Finally, the implementation of capabilities by the processor is discussed.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.