Aucbvax.1691 fa.apollo utzoo!duke!decvax!ucbvax!SHRAGE@WHARTON-10 Fri Jun 12 23:58:33 1981 The Impact of Xerox on Lanugage Design -- ... on Mesa Since Xerox will not be able to comment on Mesa permit me to explain, from an outsider's viewpoint, a little about the motivation and specifics of that system. All opinions herein are my own. All facts are quotes from one of the following: --- A brief Mesa bibliography Mitchell, J.G. et al. Mesa Language Technical Report; CSL-79-3, Xerox PARC. April 1979. Geschke, C.M. et al. Early Experiences with Mesa. CACM 20, 8 Aug 1977. pgs 540-553 Lauer, H.C. and Satterthwaite, E.H. The Impact of Mesa on System Design. Proceeding 4th int. conf. Software Eng. Munich 1979. Horsley T.R and Lynch W.C, Pilot: A Software Engineering Case Study. IEEE 1979 (detail location unknown -- I just have a xerox) Tichy W.F., Software Development Based on Module Interconnection. CMU. Also IEEE 1979 (probably the same source as above). [This is only marginally Mesa related and discusses more general concept including all sort of algol related languages] Mitchell, J.G. et al. Mesa Language Manual, Xerox PARC Feb 1978. [I do not know what relation this has to [1] above] Lampson B.W. (who else?) and Redell D.D., Experience with Processes and Monitors in Mesa. Proc. 7th symp on opsys prin.: Dec 1979 Mitchell J.G., Mesa: A Designer's User Prespective. Spring Compcon 78 I'm sure that there are many more reports available but these are the ones that I have encoutered (perhaps someone inside Xerox could slide me a "suggested reading list that I could seek out and report on at length). ------- Mesa is a programming system designed with great care to include considerations for the programmer environment, debugging, large project control, and almost every other thinkable technical detail. The Xerox designers have done an admirable job of learning from other languages' mistakes and strengths and the project is ongoing wih full support from Xerox internally. This last is, perhaps, the most important factor since it makes Mesa more than a toy that some hacker put together. Xerox seems to understand the need for a uniform internal implementation language that has the power, flexibility, and control of the best availble language technology. As I understand it, everything that can be implemented in Mesa is implemented in Mesa unless there is good reason not to do so. The language is fully compiled and fully type safe (down to the link editing stage). Types are even stored with external data. Such heavy reliance on types causes the usual problems but more so in Mesa because it is highly committed to full type safety. for example, if a module that exports a certain data-type is changed, the newly exported type (whether changed or not) is assigned as new id and all importers must be recompiled (this may be overstaing the point a bit but gets the idea across). Mesa is actively supported in Xerox and several researchers from Stanford have worked on language extensions over the past few years. The Mesa language is pretty well defined but the programming environment is less well defined (or less well popularized). At last count there was work going on to develop an incremental compiler and research in debugging environments and associated problems (like pretty printing types) in progress [this is hearsay]. Pilot, mentioned in the previous paper references is an opsys for a personal computer that was written entirely in Mesa. It consists of "tens of thousands of source lines... and was implemented in a few months" [presumably AFTER a draft of the design specs were ready]. It is an Alto opsys and thus Mesa DOES run on Altos (not that that means much any longer). One feature of Mesa that is unique is its strong interaction with its environment. The binder (linkeditor) has a language called "C/Mesa" that is used to describe module interconnection and supply automatic recompilation of dependent modules etc. Aparently (from Lauer and Satt...) the Pilot system is the runtime support system for Mesa. Mesa is more like Simula and Algol than Pascal or Ada. It has modules that communicate via interfaces (defined at a higher level). [These sentences should be attached to the previous pgh.] -------- Personal opnion: Xerox language design team are the best on earth and they have the backing of the company to make what they imagine into a reality. as an excercise to the reader... imagine a uniform and concise compiled language that provides everything one might want in such an environment from interactive debuggers to a rather sexy language underlying EVERYTHING! Now imagine that everyone in the company uses it and makes useful suggestions that actually become reality. Xerox had such an image and Mesa is their reality. God forbid I should ever have to leave LISP and APL for a real compiler environment but if that day ever came I think I would apply to Xerox for a job. In case you can't tell... I'm rather impressed with Mesa. -------- Corrections or differing opinions welcome in personal communication. -- Jeff ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.