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

The Mesa programming environment

Published: 25 June 1985 Publication History

Abstract

People everywhere are developing multi-window, integrated programming environments for their favorite computers and languages. This paper describes the Mesa programming facilities of the Xerox Development Environment (XDE). It is interesting for several reasons. It has existed in something similar to its current form for about 5 years. It has more than 500 users, many interacting with it 8 or more hours a day. Several million lines of code have been written by these users, including large, multi-author systems.
Previous papers have dealt with the Mesa language [Geschke77, Mitchell79], the operating system [Redell79, Lampson80] and the processor architecture on which it runs [Johnsson82, Sweet82]. This paper describes the programming environment: the user illusion, the set of programming tools, and the facilities available for augmenting the environment. Section 2 gives a short history of the environment, including some of our original design goals. Section 3 describes the current state of the user interface and discusses a few of the schemes that were tried and discarded. Section 4 describes some of the program development tools available and discusses how features of the language have influenced their design, and indeed influenced what tools are in the set. Section 5 describes other tools that, although valuable to the programming task, are largely language independent. Section 6 talks about how easy it is to make additions to the system, and gives examples of user additions—some that modify the environment and some that simply provide new tools. Section 7 discusses what we feel are major successes and what we feel needs to be done in the future.

References

[1]
Birrell, A.D., Levin, R., Needham, R. M., and Schroeder, M. D., Grapevine: An Exercise in Distributed Computing, Communications of the ACM25 4 (April 1982) 260-274
[2]
Feldman, S. I., Make-A Program for Maintaining Computer Programs, Software Practice & Experience9 4 (April 1979) 255-265
[3]
Geschke, C. M., Morris, J. H., and Satterthwaite, E. H., Early experience with Mesa, Communications of the ACM20 8 (August 1977) 540-553.
[4]
Graham, S. L., Joy, W. N., and Roubine, O., Hashed Symbol Tables for Languages with Explicit Scope Control, Proceedings of the Symbosium on Compiler Construction, SIGPLAN Notices14 8 (August 1979) 50-57.
[5]
Johnsson, R. K. and Wick, J. D., An Overview of the Mesa Processor Architecture, Proceedings of the Symbosium on Architectural Support for Programming Languages and Operating Systems, SIGPLAN Notices17 4 (March 1982) 20-29.
[6]
Johnsson, R. K., HackRules.doc, a text file on the <Hacks> directory.
[7]
Kay, A. C., The Reactive Engine (thesis), University of Utah, Department of Computer Science, Salt Lake City (August 1969).
[8]
Kay, A. C. and the Learning Research Group, Personal Dynamic Media, Xerox Palo Alto Research Center Report SSL-76-1 (1976).
[9]
Knuth, D. E., An Empirical Study of FORTRAN Programs, Software-Practice and Experience1 2 (1971) 105-133.
[10]
Lampson, B. W. and Sproull, R. F., An Open Operating System for a Single-User Machine, Seventh Symposium on Operating Systems Principles; Operating Systems Review13 5 (December 1979) 98-105.
[11]
Lampson, B. W. and Redell, D. D., Experience with Processes and Monitors in Mesa, Communications of the ACM23 2 (February 1980) 105-117.
[12]
Lauer, H. C., Satterthwaite, E. H., The Impact of Mesa on System Design, Proceeding of the Fourth International Conference on Software Engineering, Munich (September 1979) 174-182
[13]
Lewis, Brian T., Experience with a System for Controlling Software Versions in a Distributed Environment, Symposium on Application and Assessment of Automated Tools for Software Development, San Francisco (November 1983) 210-219.
[14]
McDaniel, G., The Mesa Spy: An Interactive Tool for Performance Debugging, Performance Evaluation Review11 4 (Winter 1982-83) 68-76.
[15]
Mitchell, J. G., Maybury W., and Sweet, R. E., Mesa Language Manual, Xerox Palo Alto Research Center Report CSL-79-3 (April 1979).
[16]
Redell, D. D., Dalal, Y. K., Horsley, T. R., Lauer, H. C., Lynch, W. C., McJones, P. R., Murray, H. G., Purcell, S. C., Pilot: An Operating System for a Personal Computer, Communications of the ACM23 2 (February 1980) 81-92.
[17]
Reid, Loretta Guarino and Karlton, Philip L., A File System Supporting Cooperaton between Programs, Operating Systems Review17 5 (October 1983) 20-29
[18]
Schmidt, E. E., Controlling Large Software Development in a Distributed Environment, Xerox Palo Alto Research Center Report CSL-82-7 (December 1982).
[19]
Sweet, R. E. and Sandman, J. G., Empirical Analysis of the Mesa Instruction Set, Proceedings of the Symbosium on Architectural Support for Programming Languages and Operating Systems, SigPLAN Notices17 4 (March 1982) 158-166.
[20]
Swinehart, D. C., Copilot: A Multiple Process Approach to Interactive Programming Systems, Stanford Artificial Intelligence Laboratory Memo AIM-230 (July 1974).
[21]
Thacker, C. P., Alto: a personal computer, in Computer Structures: Readings and Examples, Second Edition, Sieworek, Bell, and Newell Eds., McGraw-Hill (1981).
[22]
Wallace, Donald C., Tajo Functional Specification, Version 6.0, Xerox internal document (October 1980).
[23]
Zellweger, Polle T., Interactive Source-Level Debugging of Optimized Programs, Xerox Palo Alto Research Center Report CSL-84-5 (May 1984).

Cited By

View all
  • (2023)Functional Shell and Reusable Components for Easy GUIsProceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture10.1145/3609025.3609478(20-28)Online publication date: 30-Aug-2023
  • (2022)Features, believe it or not!Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3546989(32-42)Online publication date: 12-Sep-2022
  • (2021)Nutzung bewährten ArchitekturwissensEinführung in die Softwaretechnik10.1007/978-3-662-50263-1_10(389-424)Online publication date: 1-Jul-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 20, Issue 7
July 1985
251 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/17919
Issue’s Table of Contents
  • cover image ACM Conferences
    SLIPE '85: Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
    June 1985
    257 pages
    ISBN:0897911652
    DOI:10.1145/800225
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 June 1985
Published in SIGPLAN Volume 20, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)186
  • Downloads (Last 6 weeks)45
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Functional Shell and Reusable Components for Easy GUIsProceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture10.1145/3609025.3609478(20-28)Online publication date: 30-Aug-2023
  • (2022)Features, believe it or not!Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3546989(32-42)Online publication date: 12-Sep-2022
  • (2021)Nutzung bewährten ArchitekturwissensEinführung in die Softwaretechnik10.1007/978-3-662-50263-1_10(389-424)Online publication date: 1-Jul-2021
  • (2020)Cognitive Code Quality Improvement with Pattern Recognition and Recommendation by Examples2020 11th IEEE International Conference on Cognitive Infocommunications (CogInfoCom)10.1109/CogInfoCom50765.2020.9237896(000359-000364)Online publication date: 23-Sep-2020
  • (2019)The Peano Software—Parallel, Automaton-based, Dynamically Adaptive Grid TraversalsACM Transactions on Mathematical Software10.1145/331979745:2(1-41)Online publication date: 18-Apr-2019
  • (2017)The Case of the Poisoned Event HandlerProceedings of the 10th European Workshop on Systems Security10.1145/3065913.3065916(1-6)Online publication date: 23-Apr-2017
  • (2017)Node.fzProceedings of the Twelfth European Conference on Computer Systems10.1145/3064176.3064188(145-160)Online publication date: 23-Apr-2017
  • (2009)Facing crosscutting concerns in a middleware for pervasive Service composition2009 IEEE Symposium on Computers and Communications10.1109/ISCC.2009.5202304(73-79)Online publication date: Jul-2009
  • (2000)LOCAL++: A C++ framework for local search algorithmsSoftware: Practice and Experience10.1002/(SICI)1097-024X(200003)30:3<233::AID-SPE297>3.0.CO;2-K30:3(233-257)Online publication date: Mar-2000
  • (1999)LOCAL++: a C++ framework for local search algorithmsProceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)10.1109/TOOLS.1999.779008(152-161)Online publication date: 1999
  • 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media