The cedar programming environment: a midterm report and examination

This collection of papers comprises a report on Cedar, a state-of-the-art programming system. Cedar combines in a single integrated environment: high-quality graphics, a sophisticated editor and document preparation facility, and a variety of tools for the programmer to use in the construction and debugging of his programs. The Cedar Programming Language is a strongly-typed, compiler-oriented language of the Pascal family. What is especially interesting about the Ce~ar project is that it is one of the few examples where an interactive, experimental programming environment has been built for this kind of language. In the past, such environments have been confined to dynamically typed languages like Lisp and Smalltalk. The first paper, "The Roots of Cedar," describes the conditions in 1978 in the Xerox Palo Alto Research Center's Computer Science Laboratory that led us to embark on the Cedar project and helped to define its objectives and goals. Important decisions had to be made about what facilities and features were essential versus simply desirable, both with regard to the programming language as well as tools and packages. This section not only presents these decisions, but also describes the process by which we reached them. These deliberations are especially interesting in light of the fact that three communities with diverse programming languages (Mesa, lisp, and Smalltalk) and very different programming styles, met to discuss the merits and drawbacks of their individual systems and religions, with the purpose of reaching some sort of consensus that would allow the construction of a programming environment that would be satisfactory to all of them. The second paper, "A Tour Through Cedar," is essentially a travelogue through the current Cedar environment (as of September, 1983) in the form of a transcript of an actual session. This transcript consists of numerous snapshots of the display screen interspersed with dialogue and commentary. The intent is to produce an effect similar to that of the reader sitting down with a user in front of a display terminal and being given a live demonstration of the system, while an expert comments on some of the why's and wherefore's. During the course of this demonstration, the reader is introduced to most of the salient features of the Cedar Programming Environment as they come up and are used. In many cases we will digress from this demonstration to discuss some aspect of these features, such as why we did it this way, how important this particular facility actually turned out to be, etc. The final paper, "Cedar: The Report Card," discusses and attempts to evaluate how well we have succeeded in reaching our objectives and goals, to what extent the original objectives . and goals were changed or evolved during the course of the project, and what remains to be done. A version of the paper "A Tour Through Cedar" appeared in IEEE Software, April 1984. XEROX PARCo CSL-83-11. JUNE 1984

[1]  WarnockJohn,et al.  A device independent graphics imaging model for use with raster devices , 1982 .

[2]  James E. Donahue,et al.  An Informal Description of Russell , 1980 .

[3]  Daniel G. Bobrow,et al.  An efficient, incremental, automatic garbage collector , 1976, CACM.

[4]  Larry Melvin Masinter,et al.  Global program analysis in an interactive environment , 1979 .

[5]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[6]  Eric Emerson Schmidt Controlling large software development in a distributed environment , 1982 .

[7]  Daniel G. Bobrow,et al.  Knowledge Programming in Loops: Report on an Experimental Course , 1983, AI Mag..

[8]  Butler W. Lampson,et al.  Hints for Computer System Design , 1983, IEEE Software.

[9]  R. G. G. Cattell Design and lmplementation of a Relationship-Entity- Datum Data Model , 1983 .

[10]  Butler W. Lampson,et al.  The Memory System of a High-Performance Personal Computer , 1981, IEEE Transactions on Computers.

[11]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[12]  Erik Sandewall,et al.  Programming in an Interactive Environment: the ``Lisp'' Experience , 1978, CSUR.

[13]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[14]  L. Peter Deutsch,et al.  Requirements for an experimental programming environment , 1980 .

[15]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[16]  John E. Warnock,et al.  A device independent graphics imaging model for use with raster devices , 1982, SIGGRAPH.

[17]  Daniel H. H. Ingalls,et al.  The Smalltalk-76 programming system design and implementation , 1978, POPL.