Mesa Programming Environment
June 28, 1985
The Mesa Programming Environment
Richard E. Sweet
Xerox Palo Alto Research Center
(formerly at Xerox Office Systems)
Also known as the Xerox Development Environment (XDE). A bitmap display / mouse environment for program development, initially used to create "Star." Now supporting 500—1000 programmers running on Dandelions (8010) or similar machines (e.g. 6085).
 History
 User illusion
 Runtime environment
 Programming tools
 Other tools
 Lessons
History of Mesa programming facilities
1971 MPS/MPL project PARC/SRI.
Research in modular programming
1974 Bootstrap onto Alto
Moved from research to development
1980 Running on Pilot operating system
Used to develop Star and Network Services
1982—84 User interface enhancementsconcurrency, extensibility
Productivity for internal "customers"
1984—85 Versatec Expert systems, XDE, Viewpoint.
Useful product in its own right
Design Goals
· Modular programming with strong compile-time type checking.
· Object oriented program organization, procedures as first class values.
· Source level debugging.
· Runtime efficiency.
· Non-preemption of user
· Novice / expert support
· Consistent user interface
User Interface
Bitmap display / Mouse
Overlapping Windowstool per window
Menus per subwindow (stacked)
"Fill in" forms
Runtime Environment
Single address space  multiple processes
Long lived applicationsregistered procedures
Incremental loading / unloading
Debugger
Source level debugging
Breakpoints by pointing to source
Data display / modification via strong typing
"Show type"
Examine faulted processes, interrupt running ones
Expression interpreter
Other Tools
Performance measurement
Consistent compilation
Programmer's database
Distributed computing
Lessons
Premature optimization
Scaling problems
Parochialism
Consistent user interface (Packages)
Novice / Expert support (Accelerators)
Layers of abstraction
Multiple parallel tasks in single address space
Open architecture (Hacks)