TL;DR: The design of an integrated programming and debugging system using the language ALGOL W is described, and the most novel such tool is a selective trace, automatically controlled by execution frequency counts.
Abstract: The design of an integrated programming and debugging system using the language ALGOL W is described. The debugging tools are based entirely upon the source language but can be effeciently implemented. The most novel such tool is a selective trace, automatically controlled by execution frequency counts. System performance information is included.
TL;DR: This paper presents an overview of a number of system features which the author feels are important to improve the productivity of programmers working in such domains.
Abstract: List processing systems should be designed to facilitate production of large programs to manipulate large complex symbolic data stores. This paper presents an overview of a number of system features which the author feels are important to improve the productivity of programmers working in such domains. A systems view is taken, rather than focusing just on language features, since algorithms must be not only coded in a language form, but debugged, modified, made efficient, and run on data. Because of this general framework, the requirements specified are applicable to the design of advanced programming systems for a wide range of applications.Three aspects of programming systems are highlighted: good interactive facilities, programmable control structures, and sophisticated data communication mechanisms. Interactive features are described to facilitate program composition, entry, testing, debugging, editing, optimization, and packaging. Implementation of a generalized environment structure model specified would allow programming of various control regimes including multiprocesses, coroutines and backtracking. Alternative methods of procedure invocation required include invocation by pattern and by monitoring condition. The need for extended data forms, storage management, and extensibility are stressed, as is the duality of data retrieval and function evaluation. Syntax directed input and output of data would facilitate use of complex data stores.
TL;DR: This paper describes the implementation of several techniques useful for program monitoring, debugging and system measurement using the microprogramable features of an existing computer system.
Abstract: Microprogramming has been accepted as a valuable tool in several areas of system design. However, microprogramming has not generally been used as a tool for evaluating the performance of computer systems. This paper describes the implementation of several techniques useful for program monitoring, debugging and system measurement using the microprogramable features of an existing computer system. The measurement system is completely transparent to almost all target programs. Given an existing system with a writable control store, a microprogram measurement system may be the most flexible, inexpensive, reliable, and high-speed means of monitoring the performance of a computer system.
TL;DR: The range of run-time debugging facilities provided on an implementation of BASIC at Hatfield Polytechnic on an ICL 803 is described.
Abstract: One of the main advantages that on-line working provides is the ability to interact with a running program. Interaction at run-time is important from two standpoints. Firstly, it enables the programmer to control the action of the program by providing suitable data as the execution progresses. Secondly, and most importantly, given the right facilities, it enables a programmer dynamically to debug the program. One of the most popular languages designed explicitly for on-line working is BASIC. Although one is able to interact in the first sense, most implementations fail to give any run-time debugging facilities to the BASIC user. This paper describes the range of run-time debugging facilities provided on an implementation of BASIC at Hatfield Polytechnic on an ICL 803.
TL;DR: The use of abstract machines as a language for modeling processes, in conjunction with the use of a self-organizing computer, decreases user effort, eliminates the need for compilation, facilitates debugging, and decreases computer time.
Abstract: Description of an approach to computer programming which tries to minimize the time required for retranslation from the computer language into the language of the original process. A notion of a programmable network is introduced which allows the abstract machines that are a model of the processes in the user's mind to be put into a rigorous and simple form. Each process is then modeled as a particular finite-state machine, a circulating page loose system being employed as an architecture for implementing these finite-state machines. An experiment is discussed in which the use of abstract machines as a language for modeling processes, in conjunction with the use of a self-organizing computer, decreases user effort, eliminates the need for compilation, facilitates debugging, and decreases computer time.
TL;DR: The parameterized model and the script-driven tasks are discussed in detail and an actual experience in which both types of EINSTEIN tasks were used to help isolate a reported performance degradation is related.
Abstract: EINSTEIN is an internal driver developed to evaluate the performance of a mixed-mode time sharing, batch operating system. It allows a single experimenter at a terminal to place an arbitrary, reproducible, interactive load on the system. Such a facility has numerous uses: system debugging and testing, benchmarking successive releases of a system, estimating system saturation points for different configurations, evaluating alternate processor and memory scheduling algorithms, etc. A task is defined either by specifying the values for a parameterized model of task behavior or by specifying the actual terminal input for the task, called the script. The parameterized model and the script-driven tasks are discussed in detail. An actual experience in which both types of EINSTEIN tasks were used to help isolate a reported performance degradation is related.
TL;DR: Some problems and solutions in the design of software for a multi‐computer system for real‐time use are described, including inter‐computer communication, computer‐aided reconfiguration, data integrity control, selective notification of amendements and the influence of debugging, testing and assembly sequence on the design approach.
Abstract: This paper describes some problems and solutions in the design of software for a multi-computer system for real-time use. Particular concepts discussed are inter-computer communication, computer-aided reconfiguration, data integrity control, selective notification of amendements and the influence of debugging, testing and assembly sequence on the design approach. The problems of designing software for given hardware and ill-defined functions are also mentioned.
TL;DR: AlGOL programs which can be used to determine the kinds of errors detected by an ALGOL compiler, results of running the test programs on sixteen different compilers, and results obtained from a survey of the errors made by programmers at NPL are described.
Abstract: : This report considers the problems of debugging computer programs and some of the tools which can simplify the task. The main sections describe: (1) ways in which compilers can aid the debugging of programs, (2) ALGOL programs which can be used to determine the kinds of errors detected by an ALGOL compiler, (3) results of running the test programs on sixteen different compilers, (4) results obtained from a survey of the errors made by programmers at NPL.
TL;DR: The D Machine is described as a small user microprogrammable computer designed to be a versatile building block for such diverse functions as: disk file controllers, I/O controllers, and emulators, which allows D Machine users to write microprograms in an English-like format as opposed to creating binary bit pattern maps.
Abstract: The D Machine is described as a small user microprogrammable computer designed to be a versatile building block for such diverse functions as: disk file controllers, I/O controllers, and emulators. TRANSLANG is an ALGOL-like language, which allows D Machine users to write microprograms in an English-like format as opposed to creating binary bit pattern maps. The TRANSLANG translator parses TRANSLANG programs into D Machine microinstruction bit patterns which can be executed on the D Machine simulator. In addition to simulation and translation, the two programs also offer several debugging tools, such as: a full set of diagnostic error messages, register dumps, simulated memory dumps, traces on instructions and groups of instructions, and breakpoints.
TL;DR: The motivation for automated programming, setup and checking facilities for analog/hybrid computers is discussed, and the problems involved are classified.
Abstract: The motivation for automated programming, setup and checking facilities for analog/hybrid computers is discussed and the problems involved are classified. The problem of providing better offline and online program preparation and debugging facilities for analog and hybrid computation is selected for fur ther development. Following a brief characteriza tion of the problem, the available literature is reviewed in depth. Suggestions for future work in this area are included where appropriate.
TL;DR: A new debugging process is presented that is capable of eliminating almost all of the substandard components and can reduce the fraction defective of the lot after debugging by several orders of magnitude when compared with the conventional method.
Abstract: In general, a small proportion of components will be substandard because of some imperfection in the control of the production process. Because no advance knowledge exists as to which are the substandard components, their presence affects the reliability. A great part of the substandard components can be eliminated by means of debugging procedures, but due to a nonzero proportion of defectives of the component population, it is impossible to eliminate all of the substandard components through conventional debugging processes. To remedy this drawback, this paper presents a new debugging process that is capable of eliminating almost all of the substandard components. From an analysis and comparison of the new debugging process with the conventional method, it has become evident that we can reduce the fraction defective of the lot after debugging by several orders of magnitude when compared with the conventional method.
TL;DR: A simple, human‐oriented notation enabling one to describe corrections in files is presented and may be used as an input language for a program to produce a corrected file.
Abstract: A simple, human-oriented notation enabling one to describe corrections in files is presented. The notation may be used as an input language for a program to produce a corrected file.
TL;DR: As part of a multi-access system, a facility was developed to assist in the preparation of real-time programs for a specialist application and it was necessary to produce initially an operating system that would provide both multiaccess capabilities and comprehensive debug facilities.
Abstract: As part of a multi-access system, a facility was developed to assist in the preparation of real-time programs for a specialist application. The multi-access system (GPO, 1970) is located within the Electronic Switching Group GPO Research Station, Dollis Hill. This group is presently engaged on the development of a computer-controlled telephone exchange. As can be imagined, a considerable software effort is involved even in the initial stage, which consists initially of a four-line exchange controlled by a small computer via a data switch. Plans are in hand to test the system simulating much larger traffic. This software comprises the exhange system executive, a large number of operating routines, of the order of 100, and a complex test program used in the development of the data switch and the other pieces of hardware which make up the exchange. Powerful debug facilities were available and it was desired to extend their use to real-time programs. Because of the programming effort required to implement the system for the exchange and also because the system was to be implemented on a small computer, it was necessary to produce initially an operating system that would provide both multiaccess capabilities and comprehensive debug facilities. A further advantage was that it would permit hardware and software development to proceed simultaneously. The first provision is an obvious one since all computing is done in a 'hands-on' situation, i.e. each programmer is allotted time, during which he may assemble, edit or debug his program. Particularly during the last stage, the computer will be idle for appreciable periods during which the programmer cogitates. Multi-access, therefore, is an obvious method of increasing the efficiency of use of the machine, The comprehensive debug facility ensures that the programmer uses his time as efficiently as possible. The small machine concerned was a Honeywell DDP 516 with 32K words of storage. A high speed punch and reader are connected together with two Teletype ASR 33 and one KSR 35. Optional features which are incorporated in the system are memory lock-out and standard and priority interrupt lines. The high speed reader and punch are connected to the standard interrupt line, while the teletype, real-time clocks, data switch and other hardware links are connected to the priority lines. In the Honeywell interrupt system, when an interrupt occurs, it causes the contents of the program counter, which contains the address of the current instruction to be executed, to be automatically changed, thereby changing the sequence of instruction execution. Interrupts have unique memory locations dedicated to them, whose contents are interpreted as an indirect address. The action of an interrupt causes the program to branch to the location whose address is stored in the dedicated location. These dedicated locations are held in the base sector.