Three Criteria for Designing Computing Systems to Facilitate Debugging

The designer of a computing system should adopt
explicit criteria for accepting or rejecting 
proposed system features.  Three possible criteria of this
kind are input recordability, input specifiability, 
and asynchronous reproducibility of output.  These criteria
imply that a user can, if he desires, either 
know or control all the influences affecting the content
and extent of his computer's output.  To define 
the scope of the criteria, the notion of an abstract
machine of a programming language and the notion 
of a virtual computer are explained.  Examples of applications
of the criteria concern the reading of 
a time-of-day clock,  the synchronization of parallel
processes, protection in multiprogrammed systems, 
and the assignment of capability indexes.

CACM May, 1968

Van Horn, E. C.

computer design, computer design criteria, computer
systems, computer systems design, input equipment, 
input equipment design, operating systems, operating
systems design, multiprogramming, multiprogrammed 
systems, multiprogrammed system design, virtual computers,
programming languages, programming language 
design, program semantics, programming language semantics,
determinism, reproducibility, repeatability, 
deterministic computers, protection, memory protection,
information security, information privacy, computing 
reliability, debugging, program debugging, program testing,
parallel processing, parallel programming, 
multiprocessing

2.11 4.12 4.13 4.20 4.30 4.42 4.43 5.24 6.20 6.35

CA680509 JB February 23, 1978  9:06 AM

1458	4	1747
1523	4	1747
1603	4	1747
1698	4	1747
1747	4	1747
1748	4	1747
1854	4	1747
1877	4	1747
1960	4	1747
2377	4	1747
2378	4	1747
2497	4	1747
2558	4	1747
2625	4	1747
2632	4	1747
2840	4	1747
2941	4	1747
3105	4	1747
3144	4	1747
1471	5	1747
1747	5	1747
1747	5	1747
1747	5	1747
2151	5	1747
1653	6	1747
1747	6	1747
1860	6	1747