Program Behavior at the Symbolic Level

No application programmer writes machine-language programs–i.e., strings of ones and zeroes. That primitive pursuit has long been reserved for those few who create the very first modules of a software system for new hardware. Instead, programmers make use of a wide spectrum of symbolic programming languages, ranging from assembly code to high-level languages such as Fortran, Cobol, and the Algol family. Every programming language has semantics which define some abstract machine. For the assembly-language programmer this machine bears a great resemblance to the actual hardware on which the program will be interpreted, but even here the programmer will frequently use system-defined subroutines or macros which represent extensions of the base hardware facilities. The high-level language programmer's abstract machine reflects the control mechanisms and data structures characteristic of the language. The Fortran programmer, for example, can think in terms of multidimensional array structures, DO loops, subprogram facilities, and so on. In principle he need never be concerned with the manner in which his abstract Fortran machine is to be realized by a particular hardware and software system. The user of a modern electronic hand calculator needs no knowledge of the works inside the box, and a modern high-level language system should present to its users an equally consistent environment, completely defined in terms of the syntax and semantics of the source language.

[1]  Alan P. Batson,et al.  Computational processor demands of Algol-60 programs , 1975, SOSP.

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

[3]  David B. Wortman,et al.  Static and Dynamic Characteristics of XPL Programs , 1975, Computer.

[4]  R. S. Fabry,et al.  MIN—an optimal variable-space page replacement algorithm , 1976, CACM.

[5]  J. L. Baer,et al.  Measurement and Improvement of Program Behavior under Paging Systems , 1972, Statistical Computer Performance Evaluation.

[6]  Alan P. Batson,et al.  Segment sizes and liftetimes in Algol 60 programs , 1977, CACM.

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

[8]  Peter J. Denning,et al.  On modeling program behavior , 1972, AFIPS '72 (Spring).

[9]  Peter J. Denning,et al.  A study of program locality and lifetime functions , 1975, SOSP.

[10]  B. A. Wichmann SOME STATISTICS FROM ALGOL PROGRAMS , 1970 .

[11]  Harvey W. Bingham,et al.  Dynamic usage of APL primitive functions , 1976, APL '76.

[12]  R. F. Tsao,et al.  A Multi-factor Paging Experiment: I. The Experiment and the Conclusions , 1972, Statistical Computer Performance Evaluation.

[13]  Alan P. Batson,et al.  Measurements of major locality phases in symbolic reference strings , 1976, SIGMETRICS '76.

[14]  Alan P. Batson,et al.  Characteristics of program localities , 1976, CACM.

[15]  Donald J. Hatfield,et al.  Program Restructuring for Virtual Memory , 1971, IBM Syst. J..

[16]  James L. Elshoff,et al.  An Analysis of Some Commercial PL/I Programs , 1976, IEEE Transactions on Software Engineering.

[17]  Peter J. Denning,et al.  Experiments with program locality , 1899, AFIPS '72 (Fall, part I).