Grapevine: an exercise in distributed computing
Communications of the ACM
Pilot: an operating system for a personal computer
Communications of the ACM
Experience with processes and monitors in Mesa
Communications of the ACM
Communications of the ACM
An overview of the mesa processor architecture
ASPLOS I Proceedings of the first international symposium on Architectural support for programming languages and operating systems
Empirical analysis of the mesa instruction set
ASPLOS I Proceedings of the first international symposium on Architectural support for programming languages and operating systems
The impact of mesa on system design
ICSE '79 Proceedings of the 4th international conference on Software engineering
An open operating system for a single-user machine
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
A file system supporting cooperation between programs
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Hashed symbol tables for languages with explicit scope control
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
The reactive engine
The Mesa Spy: an interactive tool for performance debugging
SIGMETRICS '82 Proceedings of the 1982 ACM SIGMETRICS conference on Measurement and modeling of computer systems
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
Jasmine: a software system modelling facility
SDE 2 Proceedings of the second ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A distributed repository for immutable persistent objects
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Personal distributed computing: the alto and ethernet software
A history of personal workstations
A bibliography of parallel debuggers, 1990 edition
ACM SIGPLAN Notices
ACM Transactions on Programming Languages and Systems (TOPLAS)
An approach to support automatic generation of user interfaces
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient and language-independent mobile programs
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Technological advances in software engineering
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Copy-and-paste between overlapping windows
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Open platforms: new challenges for software engineering
Programming Support Innovations for Emerging Distributed Applications
Proceedings of the 15th European Conference on Pattern Languages of Programs
Hi-index | 0.00 |
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.