These notes develop a set of concepts for describing program structures which arise in programming languages. These concepts are then used to discuss FORTRAN, ALGOL, macro languages, languages with definitional facilities, SNOBOL4, and LISP from a unifying point of view. The central concept is that of an information structure model. Emphasis is placed on the sequence of information structures generated by programs of a programming language during their execution. Section 1 considers program representation, interpretation, and compilation. Section 2 introduces the concept of an information structure model for characterizing classes of computations. Sections 3 and 4 show that computers and programming languages are examples of information structure models. Sections 5 and 6 respectively consider the information structures associated with FORTRAN and ALGOL programs during their execution. Section 7 shows how syntax and semantics may be specified for information structure models and introduces the notion of an interpreter-interpreter. Section 8 develops information structure models for macro languages. Section 9 introduces the concept of binding time and discusses declarations and definitional facilities in programming languages. Sections 10 and 11 consider information structure models for SNOBOL4 and LISP. Computer science may be defined as the study of representation and transformation of information structures. The present approach is concerned with the representation of programs as information structures and with the transformations of these structures during execution, and directly reflects the above definition of computer science.
computer science; technical report
Previously Published As