Page Numbers: Yes X: 552 Y: 10.5" First Page: 27
Columns: 2 Edge Margin: 60 Between Columns: 25
Margins: Top: 75 Bottom: 60
Line Numbers: No Modulus: 5 Page-relative
Even Heading:
REQUIREMENTS FOR AN EXPERIMENTAL PROGRAMMING ENVIRONMENT
Odd Heading: Not-on-first-page
4. Conclusions
We are somewhat surprised at how little disagreement remains in our rather mixed group. Our priority ranking of PE features is numerical evidence of this, and the minutes of our discussions provide further, qualitative support for the same point. There are, of course, differences about the relative importance of many features, but hardly any about the five-level priority assigned to each feature, or about how hard things are to do. We therefore urge that discussion should focus on the value of an EPE and how it is to be achieved, rather than on detailed argument about individual features.
As we said initially, the purpose of a PE is to improve the productivity of programmers or the quality of programs. We don’t know how to quantify quality, but we did think about how much more productivity we might expect for sizable projects, as compared to the current state of affairs in either Lisp or Mesa. We guess that a factor of four is possible, about half from relaxing current space and time constraints by moving to the Dorado, and half from a PE which has our A, B, and C priority features and a respectable sprinkling of the others.
How will all this productivity be applied? We anticipate three major effects.
First, many more interesting things will be within the scope of a single person’s efforts. Hence, the number of ambitious one-person projects can be expected to increase dramatically; not only are they much less work to do, but it is much easier to organize a one-person that a four-person project.
Second, much more elaborate things will be feasible, and hence will be attempted.
Third, the evolution of good packages which can be easily used without disastrous time, space, or naming conflicts will cause a qualitative change in the nature of system-building: the current Interlisp system gives us our few hints of what this change will be like.
References
[Bobrow & Winograd, 1977]
Daniel G. Bobrow and Terry Winograd, ‘‘An Overview of KRL, a Knowledge Representation Language,’’
Cognitive Science, vol. 1 no. 1, 1977.
[Cousot & Cousot, 1977]
Patric Cousot and Radhia Cousot, ‘‘Static Determination of Dynamic Properties of Generalized Type Unions,’’
Sigplan Notices, vol. 12 no. 3, March 1977.
[Geschke et al., 1977]
Charles M. Geschke, James H. Morris, Jr., and Edwin H. Satterthwaite, ‘‘Early experience with Mesa,’’
Communica-tions of the ACM, vol. 20 no. 8, pp. 540-553, August 1977.
[Ingalls, 1978]
D. H. Ingalls, ‘‘The Smalltalk-76 Programming System: Design and Implementation,’’
Proceedings of the 5th Annual ACM Symposium on Principles of Programming Languages, 1978.
[Kay, 1977]
Alan C. Kay, ‘‘Microelectronics and the Personal Computer,’’
Scientific American, vol. 237 no. 3, pp. 231-244, March 1977.
[Lampson & Pier, 1980]
Butler W. Lampson and Kenneth A. Pier, ‘‘A Processor for a High-Performance Personal Computer,’’
Proceedings of the 7th International Symposium on Computer Architecture, May 1980.
[Lauer & Satterthwaite, 1979]
Hugh C. Lauer and Edwin H. Satterthwaite, ‘‘The Impact of Mesa on System Design,’’ Proceedings of the 4th International Conference on Software Engineering, 174-182, 1979.
[Levin, 1977]
Roy Levin, ‘‘Program Structures for Exceptional Condition Handling,’’ Carnegie-Mellon University technical report, June 1977.
[Milner, 1978]
Robin Milner, ‘‘A Theory of Type Polymorphism in Programming,’’
Journal of Computer and System Sciences, vol. 17, 348-375, 1978.
[Mitchell, et al., 1979]
James G. Mitchell, William Maybury, and Richard Sweet, ‘‘Mesa Language Manual, version 5.0,’’ Xerox PARC technical report CSL-79-3, April 1979.
[Mitchell & Wegbreit, 1978]
James G. Mitchell and Ben Wegbreit, ‘‘Schemes: a High Level Data Structuring Concept,’’
Current Trends in Programming Methodology (Raymond T. Yeh, ed.), vol. 4, Prentice-Hall, 1978.
[Newman & Sproull, 1979]
William M. Newman and Robert F. Sproull,
Principles of Interactive Computer Graphics, second edition, McGraw-Hill, 1979.
[Popek, et al., 1977]
G. J. Popek, J. J. Horning, B. W. Lampson, J. G. Mitchell, and R. L. London, ‘‘Notes on the Design of Euclid,’’
Sigplan Notices, vol. 12 no. 3, March 1977.
[Redell, et al., 1979]
D. Redell, Y. Dalal, T. Horsley, H. Lauer, W. Lynch, P. McJones, H. Murray, and S. Purcell, ‘‘Pilot: an Operating System for a Personal Computer,’’
Proceedings of the Seventh Symposium on Operating System Principles, December 1979.
[Shaw, et al., 1977]
Mary Shaw, William A. Wulf, and Ralph L. London, ‘‘Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators,’’
Communications of the ACM, vol. 20 no. 8, August 1977.
[Stoneman, 1980]
‘‘
Stoneman: Requirements for Ada Programming Support Environments’’ (John N. Buxton, ed.), U. S. Department of Defense, February 1980.
[Teitelman, 1977]
Warren Teitelman, ‘‘A Display-oriented Programmer’s Assistant,’’
Proceedings of the 5th International Joint Conference on Artificial Intelligence, pp. 905-915, August 1977.
[Teitelman, 1978]
Warren Teitelman,
et al., ‘‘Interlisp Reference Manual,’’ Bolt, Beranek & Newman and Xerox Palo Alto Research Center, 1978.
[Thacker, et al., 1979]
C. P. Thacker, E. M. McCreight, B. W. Lampson, R. F. Sproull, and D. R. Boggs, ‘‘Alto: a Personal Computer,’’
Computer Structures: Readings and Examples (Siewiorek, Bell, and Newell, eds.), 1979.