Control structures for programming languages

. The research reported here is the result of an investigation of several aspects of the control structure of programming languages. By control structures we mean _ • programming environments or operations which specify the sequencing and interpretation rules for programs or parts of programs. This dissertation attempts to demonstrate the thesis: complexity diminishes and clarity increases to a marked degree if algorithms are described in a language in which appropriate control structures are primitive or easily expressible. A number of •control structures extant in programming languages and systems are catalogued and then used as a guide to develop a programming language which has a control extension "_ facility. This language has not only the mechanical necessities for control extensions, but also has primitive control operations for sequential processing, parallel processing, alternative selection, monitoring, synchronization, ° and relative continuity. These operations are the source of the clarity of control descriptions because they span ou_ conceptual notion of control and because they can be easily composed to form other more specialized control structures.

[1]  J. von Neumann,et al.  Probabilistic Logic and the Synthesis of Reliable Organisms from Unreliable Components , 1956 .

[2]  Jerome A. Feldman A formal semantics for computer languages and its application in a compiler-compiler , 1966, CACM.

[3]  Philippe Jorrand,et al.  Some aspects of Basel, the base language for an extensible language facility , 1968, SIGP.

[4]  James R. Bell,et al.  Transformations: the extension facility of Proteus , 1969, SIGP.

[5]  John C. Reynolds,et al.  GEDANKEN: A SIMPLE TYPELESS LANGUAGE WHICH PERMITS FUNCTIONAL DATA STRUCTURES AND COROUTINES. , 1969 .

[6]  Bernard A. Galler,et al.  A proposal for definitions in ALGOL , 1967, CACM.

[7]  Thomas A. Standish Some features of PPL, a polymorphic programming language , 1969, SIGP.

[8]  Donald E. Knuth,et al.  Additional comments on a problem in concurrent programming control , 1966, CACM.

[9]  James P. Anderson,et al.  Program structures for parallel processing , 1965, Commun. ACM.

[10]  Arthur J. Bernstein,et al.  Analysis of Programs for Parallel Processing , 1966, IEEE Trans. Electron. Comput..

[11]  Burt M. Leavenworth,et al.  Syntax macros and extended translation , 1966, CACM.

[12]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[13]  Robert W. Floyd,et al.  Syntactic Analysis and Operator Precedence , 1963, JACM.

[14]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[15]  Thomas A. Standish,et al.  A Data Definition Facility for Programming Languages , 1967, Outstanding Dissertations in the Computer Sciences.

[16]  Thomas B. Steel,et al.  Formal language description languages for computer programming : proceedings of the IFIP Working Conference on Formal Language Description Languages , 1966 .

[17]  Ascher Opler,et al.  Procedure-oriented language statements to facilitate parallel processing , 1965, CACM.

[18]  Alan J. Perlis,et al.  An extension to ALGOL for manipulating formulae , 1964, CACM.

[19]  Jack B. Dennis,et al.  Programming generality, parallelism and computer architecture , 1968, IFIP Congress.

[20]  Donald E. Knuth,et al.  A Formal Definition of SOL , 1964, IEEE Trans. Electron. Comput..

[21]  J. G. Mitchell,et al.  LC2: a language for conversational computing , 1967 .

[22]  Donald E. Knuth,et al.  The remaining trouble spots in ALGOL 60 , 1967, Commun. ACM.

[23]  Rosen Saul,et al.  Programming systems and languages , 1966 .

[24]  D. Morris,et al.  A General Translation Program for Phrase Structure Languages , 1962, JACM.

[25]  Daniel Teichroew,et al.  Computer simulation—discussion of the technique and comparison of languages , 1966, CACM.

[26]  Melvin E. Conway,et al.  Design of a separable transition-diagram compiler , 1963, CACM.

[27]  David Lorge Parnas Sequential equivalents of parallel processes , 1967 .

[28]  Alan J. Perlis,et al.  The Synthesis of Algorithmic Systems , 1967, JACM.

[29]  Christopher Strachey,et al.  A general purpose macrogenerator , 1965, Comput. J..

[30]  A. Newell,et al.  Information processing language-V manual , 1965 .

[31]  WirthNiklaus On multiprogramming, machine coding, and computer organization , 1969 .

[32]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[33]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[34]  J. W. Backus,et al.  The FORTRAN automatic coding system , 1899, IRE-AIEE-ACM '57 (Western).

[35]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[36]  D. W. Barron,et al.  The Main Features of CPL , 1963, Comput. J..

[37]  Edwin D. Reilly,et al.  On reversible subroutines and computers that run backwards , 1965, CACM.

[38]  Donald E. Knuth,et al.  SOLߞA Symbolic Language for General-Purpose Systems Simulation , 1964, IEEE Trans. Electron. Comput..

[39]  Jay Earley,et al.  An efficient context-free parsing algorithm , 1970, Commun. ACM.

[40]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.