Towards monolingual programming environments

Most programming environments are much too complex. One way of simplifying them is to reduce the number of mode-dependent languages the user has to be familiar with. As a first step towards this end, the feasibility of unified command/programming/debugging languages, and the concepts on which such languages have to be based, are investigated. The unification process is accomplished in two phases. First, a unified command/programming framework is defined and, second, this framework is extended by adding an integrated debugging capability to it. Strict rules are laid down by which to judge language concepts presenting themselves as candidates for inclusion in the framework during each phase. On the basis of these rules many of the language design questions that have hitherto been resolved this way or that, depending on the taste of the designer, lose their vagueness and can be decided in an unambiguous manner.

[1]  S. J. Young,et al.  The programming language ADA reference manual: Springer-Verlag (1981) pp 243, $7.90, DM 16.50 , 1982, Microprocess. Microsystems.

[2]  James W. Goodwin,et al.  Why Programming Environments Need Dynamic Data Types , 1981, IEEE Transactions on Software Engineering.

[3]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[4]  Paul Klint,et al.  An overview of the SUMMER programming language , 1980, POPL '80.

[5]  J. C. Shaw,et al.  JOSS: a designer's view of an experimental on-line computing system , 1964, AFIPS '64 (Fall, part I).

[6]  David R. Hanson,et al.  Event associations in SNOBOL4 for program debugging , 1978, Softw. Pract. Exp..

[7]  Robert B. K. Dewar,et al.  Indirect threaded code , 1975, Commun. ACM.

[8]  Lambert G. L. T. Meertens,et al.  Incremental polymorphic type checking in B , 1983, POPL '83.

[9]  Juris Hartmanis,et al.  The Programming Language Ada , 1983, Lecture Notes in Computer Science.

[10]  Randall Davis,et al.  An overview of production systems , 1975 .

[11]  Anita K. Jones The Narrowing Gap Between Language Systems and Operating Systems , 1977, IFIP Congress.

[12]  Steven Pemberton,et al.  An implementation of the B programming language , 1984 .

[13]  Ralph E. Griswold,et al.  The SNOBOL4 programming language , 1968 .

[14]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

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

[16]  David R. Hanson,et al.  Variable associations in SNOBOL4 , 1976, Softw. Pract. Exp..

[17]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[18]  David R. Barstow,et al.  Interactive programming environments , 1984, SOEN.

[19]  Paul Klint,et al.  Interpretation Techniques , 1981, Softw. Pract. Exp..

[20]  Eugene W. Myers,et al.  Efficient applicative data types , 1984, POPL.

[21]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[22]  Norihisa Suzuki,et al.  Inferring types in Smalltalk , 1981, POPL '81.

[23]  Fred Gruenberger The History of the JOHNNIAC , 1979, Annals of the History of Computing.

[24]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..