[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Open access

A structural view of the Cedar programming environment

Published: 01 August 1986 Publication History

Abstract

This paper presents an overview of the Cedar programming environment, focusing on its overall structure—that is, the major components of Cedar and the way they are organized. Cedar supports the development of programs written in a single programming language, also called Cedar. Its primary purpose is to increase the productivity of programmers whose activities include experimental programming and the development of prototype software systems for a high-performance personal computer. The paper emphasizes the extent to which the Cedar language, with run-time support, has influenced the organization, flexibility, usefulness, and stability of the Cedar environment. It highlights the novel system features of Cedar, including automatic storage management of dynamically allocated typed values, a run-time type system that provides run-time access to Cedar data type definitions and allows interpretive manipulation of typed values, and a powerful device-independent imaging model that supports the user interface facilities. Using these discussions to set the context, the paper addresses the language and system features and the methodologies used to facilitate the integration of Cedar applications. A comparison of Cedar with other programming environments further identifies areas where Cedar excels and areas where work remains to be done.

References

[1]
BAYER, R., AND MCCREIGHT, E. Organization and maintenance of large ordered indexes. Acta Inf. 1, 3 (1972), 173-189.]]
[2]
BEACI~, R. Experience with the Cedar programming environment for computer graphics research. Gr. Interface 84.]]
[3]
BIRRELL, A., LEVlN, R., NEEDHAM, R., AND SCHROEDER, M. Grapevine: An exercise in distributed computing. Commun. ACM 25, 4 (Apr. 1982).]]
[4]
BIRRELL, A., AND NELSON, B. Implementing remote procedure calls. ACM Trans. Comput. Syst. 2, 1 (Feb. 1984).]]
[5]
BOBROW, D., BURCHF1EL, J., MURPHY, D., AND TOMLINSON, R. TENEX: A paged time-sharing system for the PDP-10. Commun. ACM 15, 3 (Mar. 1972), 135-143.]]
[6]
BOGGS, D., SHOCH, J., TAFT, E., AND METCALFE, R. Pup: An internetwork architecture. IEEE Trans. Commun. 28, 4 (Apr. 1980), 612-624.]]
[7]
BOURNE, S. The UNIX shell. Bell Syst. Tech. J. 57, 6, Pt. 2 (Jul.-Aug. 1978), 1971-1990.]]
[8]
BraNCH HANSEN, P. Operating Systems Principles. Prentice-Hall, Englewood Cliffs, N.J., Jul. 1973.]]
[9]
BROWN, M., KOLLING, K., AND TAFT, E. The Alpine file system. Xerox PARC Rep. CSL-84- 4, 1984.]]
[10]
CARGILL, T. Debugging C programs with the Blit. AT&T Bell Lab. Tech. J. 63, 8, Pt. 2 (1984), 1633-1648.]]
[11]
CATTELL, R. G. G. Design and implementation of a relationship-entity-datum data model. Xerox PARC Rep. CSL-83-4, 1983.]]
[12]
CLARK, D. The structuring of systems using upcalls. In Proceedings of the lOth Symposium on Operation Systems Principles (Dec. 1985), 171-180.]]
[13]
DELISLE, N., MENICOSY, D., AND SCHWARTZ, M. Viewing a programming environment as a single tool. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (Apr. 1984), 49-56.]]
[14]
DEUTSCH, P., AND BOBROW, D. An efficient, incremental, automatic garbage collector. Cornmun. ACM 19, 7 (Jul. 1976).]]
[15]
DEUTSCH, P., AND TAFT, E. Requirements for an experimental programming environment. Xerox PARC Rep. CSL-80-10, 1980.]]
[16]
DONAHUE, J. Integration mechanisms in Cedar. In Proceedings of the ACM SIGPLAN 85 Symposium on Language Issues in Programming Environments (Seattle, Wash., Jun. 1985). SIGPLAN Not. 20, 7 (Jul. 1985).]]
[17]
DONAHUE, J., AND WIDOM. J. Whiteboards: A graphical database tool. Xerox PARC Rep. CSL-85-4, 1985.]]
[18]
FELDMAN, S. Make--a program for maintaining computer programs. In UNIX Programmer's Manual, Supplementary Documents, 4.2 Berkeley Software Distribution, Virtual VAX-11 Version. Computer Science Div., Univ. of California, Berkeley, 1984.]]
[19]
GESCHKE, C., MORRIS, J., AND SATTERTHWAITE, E. Early experience with Mesa. Commun. ACM 20, 8 (Aug. 1977).]]
[20]
GOLDBERG, A., AND ROBSON, D. SmaUtalk-80: The Language and Its Implementation, McGraw- Hill, New York, 1983.]]
[21]
GUIBAS, L., AND SEDGEWICK, R. A dichromatic framework for balanced trees. In Proceedings of the 19th Annual Symposium on Foundations of Computer Science, (Ann Arbor. Mich., Oct. 1978).]]
[22]
HAGMANN, R. Process server: Sharing processing power in a workstation environment. In Proceedings of the 6th International Conference on Distributed Computing Systems (Boston, May 1986).]]
[23]
IEEE. A proposed standard for binary floating-point arithmetic. Computer 14, 3 (Mar. 1981), 51-62.]]
[24]
HOARE, C. A.R. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct. 1974), 549-557.]]
[25]
JOHNSSON, R., AND WICK, J. An overview of the Mesa processor architecture. In Proceedings of Symposium on Architectural Support for Programming Languages and Operation Systems (Apr. 1982). SIGPLAN Not. 17, 4 (Mar. 1982).]]
[26]
LAMPSON, B., AND PIER, K.: LAMPSON, B., MCDANIEL, G., AND ORNSTEIN, S.: CLARK, D., LAMPSON, B., ANO PIER, K. The Dorado: A high performance personal computer, three papers. Xerox PARC Rep. CSL-81-1, 1981.]]
[27]
LAMPSON, B., AND REDELL, D. Experience with processes and monitors in Mesa. Commun. ACM23, 2 (Feb. 1980), 105-117.]]
[28]
LAMPSON, B., AND SCHMIDT, E. Organizing software in a distributed environment. In Proceedings of the SIGPLAN 83 Symposium on Programming Language Issues in Software Systems (San Francisco, Jun. 1983).]]
[29]
LAMPSON, B., AND SPROULL, R. An open system for a single-user machine. In Proceedings of the 7th Symposium on Operating Systems Principles (Dec. 1979), 98-105.]]
[30]
LAUER, H., AND NEEDHAM, R. On the duality of operating system structures. In Proceedings of the 2nd International Symposium on Operating Systems (Rocquencourt, France, Oct. 1978), IRIA. Reprinted in Oper. Syst. Rev. 13, 2 (Apr. 1979), 3-19.]]
[31]
LAUER, H., AND SATTERTHWAITE, E. The impact of Mesa on system design. In Proceedings of the 4th International Conference on Software Engineering (Munich, Sept. 1979).]]
[32]
MCCREIGHT, E. The Dragon computer system: An early overview. In Proceedings of the NATO Advanced Study Institute on Microarchitecture of VLSI Computers (Urbino, Italy, Jul. 1984).]]
[33]
MCDANIEL, G. The Mesa Spy: An interactive tool for performance debugging. In Proceedings of the 1982 ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems (Aug. 1982).]]
[34]
METCALFE, R., AND BOGGS, D.: CRANE, R., AND TAFT, E.: SHOCH, J., AND HUPP. J. The Ethernet local network: Three reports. Xerox PARC Rep. CSL-80-2, 1980.]]
[35]
MITCHELL, J. Mesa language manual. Xerox PARC Rep. CSL-79-3, 1979.]]
[36]
NBS. Data Encryption Standard. FIPS publ. 46, National Bureau of Standards, U.S. Dept. of Commerce, Washington, D.C., 1977.]]
[37]
NEWMAN, W., AND SPROULL, R. Principles of Interactive Computer Graphics. 2nd Ed., McGraw- Hill, New York, 1979.]]
[38]
OWICKI, S. Making the world safe for garbage collection. POPL 8 (Jan. 1981).]]
[39]
PERLIS, A. Another view of software. In Proceedings o{ the 8th International Symposium on Software Engineering (Imperial College, London, Aug. 1985).]]
[40]
REDELL, D., DALAL, Y., HORSLEY, T., LAUER, H., LYNCH, W., MCJONES, P., MURRAY, H., ANO PURCELL, S. Pilot: An operating system for a personal computer. Commun. ACM 23, 2 (Feb. 1980).]]
[41]
RITCHIE, D., ANO THOMPSON, K. The UNIX time-sharing system. Bell Syst. Tech. J. 57, 6, Pt. 2 (Jul.-Aug. 1978), 1905-1930.]]
[42]
ROVNER, P. On adding garbage collection and runtime types to a strongly-typed, staticallychecked concurrent language. Xerox PARC Rep. CSL-84-7, 1985.]]
[43]
SCHMIOT, E. Controlling large software development in a distributed environment. Ph.D. thesis. Univ. of California, Berkeley, 1982; also available as Xerox PARC Report CSL-82-7, 1982.]]
[44]
SCHROEDER, M., GIFFORD, D., AND NEEDHAM, R. A caching file system for a programmer's workstation. In Proceedings of the lOth Symposium on Operating Systems Principles (Dec. 1985), 25-34.]]
[45]
SERLET, B. Object-oriented programming in Cedar. In Proceedings of Journees Langages Orientes Objet (Paris, Jan. 1986). Also appears in Actes des Journees Langages Orientes Objet. Bigre Globule, 64-68.]]
[46]
STEWART, L., SWINEHART, D., AND ORNSTEIN, S. Adding voice to an office computer network. In Proceedings of the GlobeCom 83, IEEE Communications Society Conference (Nov. 1983).]]
[47]
SWEET, R. The Mesa programming environment. In Proceedings of the ACM SIGPLAN 85 Symposium on Language Issues in Programming Environments (Jun. 1985). SIGPLAN Not. 20, 7 (Jul. 1985).]]
[48]
SWEET, R., ANO SANOMAN, J., JR. Empirical analysis of the Mesa instruction set. In Proceedings o/the Symposium on Architectural Support for Programming Languages and Operating Systems. (Apr. 1982). SIGPLAN Not. 17, 4 (Mar. 1982).]]
[49]
SWlNEHART, D., ZELLWEGER, P., AND HAGMANN, R. The structure of Cedar. In Proceedings of the ACM SIGPLAN 85 Symposium on Language Issues in Programming Environments (Jun. 1985). SIGPLAN Not. 20, 7 (Jul. 1985).]]
[50]
TEITELBAUM, T., ANO REPS., T. The Cornell Program Synthesizer: A syntax-directed programruing environment. Commun. ACM 24, 9 (Sept. 1981), 563-573.]]
[51]
TEITELMAN, W. A tour through Cedar. IEEE So{tw. (Apr. 1984).]]
[52]
TEITELMAN, W. The Cedar programming environment: A midterm report and examination. Xerox PARC Rep. CSL-83-11, 1984.]]
[53]
TEITELMAN, W., AND MASINTER, L. The Interlisp programming environment. Computer 14, 4 (Apr. 1981), 25-34.]]
[54]
THACKER, C lVlVUK~lUrll, ~., ua~ar~ur~, B., orr~uuLL, R., Ar~u BOGGS, D. * ~- A computer. Xerox PARC Rep. CSL-79-11, 1979.]]
[55]
WALLACE, O. Tajo functional specification, version 6.0. Xerox internal document, Oct. 1980.]]
[56]
WARNOCK, g., AND WYATT, D. A device-independent graphics imaging model for use with raster devices. Comput. Gr. 16, 3 (Jul. 1982), 313-319.]]
[57]
Xerox Corp. Interlisp Reference Manual. Oct. 1983.]]
[58]
Xerox Corp. Interpress Electronic Printing Standard, Version 2.1. Xerox System Integration Standard XSIS 048404, Apr. 1984.]]
[59]
ZIMMERMANN, H. OSI reference model--the ISO model of architecture for open systems interconnection. IEEE Trans. Commun. 28, 4 (Apr. 1980), 425-432.]]

Cited By

View all
  • (2024)Pick, Click, Flick!undefinedOnline publication date: 14-Mar-2024
  • (2023)Toolglass and Magic Lenses: The See-Through InterfaceSeminal Graphics Papers: Pushing the Boundaries, Volume 210.1145/3596711.3596719(59-66)Online publication date: 1-Aug-2023
  • (2018)Competitive parallelism: getting your priorities rightProceedings of the ACM on Programming Languages10.1145/32367902:ICFP(1-30)Online publication date: 30-Jul-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 8, Issue 4
Oct. 1986
190 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/6465
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1986
Published in TOPLAS Volume 8, Issue 4

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)270
  • Downloads (Last 6 weeks)56
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Pick, Click, Flick!undefinedOnline publication date: 14-Mar-2024
  • (2023)Toolglass and Magic Lenses: The See-Through InterfaceSeminal Graphics Papers: Pushing the Boundaries, Volume 210.1145/3596711.3596719(59-66)Online publication date: 1-Aug-2023
  • (2018)Competitive parallelism: getting your priorities rightProceedings of the ACM on Programming Languages10.1145/32367902:ICFP(1-30)Online publication date: 30-Jul-2018
  • (2017)Responsive parallel computation: bridging competitive and cooperative threadingACM SIGPLAN Notices10.1145/3140587.306237052:6(677-692)Online publication date: 14-Jun-2017
  • (2017)Direct Inter-Process Communication (dIPC)Proceedings of the Twelfth European Conference on Computer Systems10.1145/3064176.3064197(16-31)Online publication date: 23-Apr-2017
  • (2017)Responsive parallel computation: bridging competitive and cooperative threadingProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062370(677-692)Online publication date: 14-Jun-2017
  • (2011)Issues Encountered in Building a Flexible Software Development EnvironmentEngineering of Software10.1007/978-3-642-19823-6_14(265-287)Online publication date: 2011
  • (2009)BibliographyProgramming Language Pragmatics10.1016/B978-0-12-374514-9.00002-1(849-865)Online publication date: 2009
  • (2007)SingularityACM SIGOPS Operating Systems Review10.1145/1243418.124342441:2(37-49)Online publication date: 1-Apr-2007
  • (2006)Language support for fast and reliable message-based communication in singularity OSACM SIGOPS Operating Systems Review10.1145/1218063.121795340:4(177-190)Online publication date: 18-Apr-2006
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media