A language for inquiring about the run‐time behaviour of programs

This paper describes a language for studying the behaviour of programs, based upon the data collected while these programs are executed by a computer. Besides being a useful tool in debugging, the language is also valuable in the experimental evaluation of the complexity of algorithms, in studying the interdependence of conditionals in a program and in determining the feasibility of transporting programs from one machine to another. The program one wishes to analyse is written in an Algol 60‐like language; when the program is executed it automatically stores, in a data base, the information needed to answer general questions about computational events which occurred during execution. This information consists (basically) of the list of labels passed while the program is being executed, and the current values of the variables. Since the list of labels is describable by regular expressions, these expressions can also be used to identify specific subparts of the list and therefore allow access to the values of the variables. This constitutes the basis for the design of the inquiry language. The user's questions are automatically answered by a processor which inspects the previously generated data base. The paper also presents examples of the use of the language and describes the implementation of its processor.

[1]  Andries van Dam,et al.  On-line Text Editing: A Survey , 1971, CSUR.

[2]  Marvin Minsky,et al.  Computation : finite and infinite machines , 2016 .

[3]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

[4]  J. J. Horning,et al.  A compiler generator , 1970 .

[5]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

[6]  Donald E. Knuth,et al.  An empirical study of FORTRAN programs , 1971, Softw. Pract. Exp..

[7]  Ralph Grishman Criteria for a debugging language , 1971 .

[8]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[9]  Jacques Cohen,et al.  Two languages for estimating program efficiency , 1974, Commun. ACM.

[10]  George E. Forsythe,et al.  Computer science and mathematics , 1970, SGCS.

[11]  Donald E. Knuth,et al.  Optimal measurement points for program frequency counts , 1973 .

[12]  Edwin H. Satterthwaite Debugging tools for high level languages , 1972, Softw. Pract. Exp..

[13]  Douglas J. Ingalls The execution time profile as a programming tool , 1971 .

[14]  Jacques Cohen Experience with a conversational parser generating system , 1975, Softw. Pract. Exp..

[15]  Robert Balzer,et al.  EXDAMS: extendable debugging and monitoring system , 1969, AFIPS '69 (Spring).

[16]  Jacques Cohen,et al.  A use of fast and slow memories in list-processing languages , 1967, CACM.

[17]  Brian Randall,et al.  ALGOL 60 implementation , 1964 .

[18]  Jacques Cohen,et al.  Non-Deterministic FORTRAN , 1974, Comput. J..