Page Numbers: Yes X: 530 Y: 10.5" Roman First Page: 0 Not-on-first-page
Columns: 1 Edge Margin: .6" Between Columns: .4"
Margins: Top: 1.3" Bottom: 1"
Line Numbers: No Modulus: 5 Page-relative
Even Heading:
REQUIREMENTS FOR AN EXPERIMENTAL PROGRAMMING ENVIRONMENT
Odd Heading: Not-on-first-page
REQUIREMENTS FOR AN EXPERIMENTAL PROGRAMMING ENVIRONMENT
Requirements for an
Experimental Programming Environment
edited by L. Peter Deutsch and Edward A. Taft
CSL-80-10June 1980; reprinted May 1982
c Copyright Xerox Corporation 1982. All rights reserved.
Abstract: We define experimental programming to mean the production of moderate-size software systems that are usable by moderate numbers of people in order to test ideas about such systems. An experimental programming environment enables a small number of programmers to construct such experimental systems efficiently and cheaply—an important goal in view of the rising cost of software.
In this report we present a catalog of programming environment capabilities and an evaluation of their cost, value, and relative priority. Following this we discuss these capabilities in the context of three existing programming environments: Lisp, Mesa, and Smalltalk. We consider the importance of specific capabilities in environments that already have them and the possibility of including them in environments that do not.
CR Categories: 4.20, 4.33, 4.34, 4.4
Key words and phrases: programming environment, experimental programming
XEROX
Xerox Corporation
Palo Alto Research Centers
3333 Coyote Hill Road
Palo Alto, California 94304
Preface
Computer software costs rise steadily, as we expand our ambitions to include ever more complex systems using ever cheaper hardware. The software that we can produce, and the rate at which we can produce it, are too often limiting factors in our research within the Xerox Palo Alto Research Center’s Computer Science Laboratory (CSL). We believe that it is increasingly desirable, feasible, and economic to use computers to directly assist the process of experimental programming.
This report was produced two years ago as the report of an ad hoc ‘‘Programming Environment Working Group’’ that I chaired. It provided much of the initial impetus for Cedar, a major project now underway in CSL. Cedar is developing an advanced programming environment for the Mesa language as the basis for most of our programming during the next several years. We plan to report in due course both on various novel aspects of the design of Cedar and on our experiences in constructing and using it.
Meanwhile, interest in the important properties of programming environments has been growing. For example, the U. S. Department of Defense recently published ‘‘Requirements for Ada Programming Support Environments.’’ [Stoneman, 1980] Our situation has much in common with that of other groups needing programming environments; hence we believe that others may be interested in the requirements that we originally set for Cedar.
This report was originally edited by Peter Deutsch for consideration within CSL. Ed Taft has edited it slightly to make it more comprehensible outside its original context, but has not attempted to either update or generalize it. Considering its age, and the speed with which it was prepared, I believe that it stands up very well. However, the reader should bear in mind that it was addressed to the problems of CSL as we saw them in mid-1978.
J. J. Horning
June 1980