Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Mesa (programming language)

From Wikipedia, the free encyclopedia
(Redirected fromCedar (programming environment))
Programming language created in 1976

Mesa[1]
Designed byComputer Systems Laboratory (CSL)
DeveloperXerox PARC
First appeared1976; 50 years ago (1976)[2]
Stable release
Mesa 6.0 (Version 41) / July 1981; 44 years ago (1981-07)
Typing disciplineStrong, static
Influenced by
ALGOL
Influenced
Java,Modula-2,Cedar,PostScript[3]

Mesa[1] is aprogramming language developed in the mid 1970s at theXerox Palo Alto Research Center inPalo Alto, California,United States. The language name was a pun based upon the programming language catchphrases of the time, because Mesa is a"high level" programming language.

Mesa is anALGOL-like language with strong support formodular programming. Every library module has at least twosource files: adefinitions file specifying the library'sinterface plus one or moreprogram files specifying theimplementation of the procedures in the interface.[4] To use a library, a program or higher-level library must "import" the definitions. The Mesa compilertype-checks all uses of imported entities; this combination of separate compilation with type-checking was unusual at the time.[citation needed]

Mesa introduced several other innovations in language design and implementation, notably in the handling ofsoftware exceptions,threadsynchronization, andincremental compilation.

Mesa was developed on theXerox Alto, one of the firstpersonal computers with agraphical user interface, however, most of the Alto's system software was written inBCPL. Mesa was the system programming language of the laterXerox Star workstations, and for theGlobalView desktop environment. Xerox PARC later developedCedar, which was a superset of Mesa.

Mesa and Cedar had a major influence on the design of other important languages, such asModula-2 andJava, and was an important vehicle for the development and dissemination of the fundamentals ofGUIs, networked environments, and the other advancesXerox contributed to the field ofcomputer science.

History

[edit]

Mesa was originally designed in the Computer Systems Laboratory (CSL), a branch of the Xerox Palo Alto Research Center, for theAlto, an experimental micro-coded workstation. Initially, its spread was confined to PARC and a few universities to which Xerox had donated some Altos.

Mesa was later adopted as the systems programming language for Xerox's commercial workstations such as theXerox 8010 (Xerox Star, Dandelion) andXerox 6085 (Daybreak), in particular for thePilot operating system.

A secondary development environment, called theXerox Development Environment (XDE) allowed developers to debug both the operating system Pilot as well as ViewPoint GUI applications using a world swap mechanism. This allowed the entire "state" of the world to be swapped out, and allowed low-level system crashes which paralyzed the whole system to be debugged. This technique did not scale very well to large application images (several megabytes), and so the Pilot/Mesa world in later releases moved away from the world swap view when the micro-coded machines were phased out in favor of SPARC workstations and Intel PCs running a Mesa PrincOps emulator for the basic hardware instruction set.

Mesa was compiled into a stack-machine language, purportedly with the highest code density ever achieved (roughly 4 bytes per high-level language statement). This was touted in a 1981 paper where implementors from the Xerox Systems Development Department (then, the development arm of PARC), tuned up the instruction set and published a paper on the resultant code density.[5]

Mesa was taught via the Mesa Programming Course that took people through the wide range of technology Xerox had available at the time and ended with the programmer writing a "hack", a workable program designed to be useful. An actual example of such a hack is the BWSMagnifier, which was written in 1988 and allowed people to magnify sections of the workstation screen as defined by a resizable window and a changeable magnification factor. Trained Mesa programmers from Xerox were well versed in the fundamental of GUIs, networking, exceptions, and multi-threaded programming, almost a decade before they became standard tools of the trade.

Within Xerox, Mesa was eventually superseded by theCedar programming language. Many Mesa programmers and developers left Xerox in 1985; some of them went toDEC Systems Research Center where they used their experience with Mesa in the design ofModula-2+, and later ofModula-3.

Main features

[edit]

Semantics

[edit]

Mesa was astrongly typed programming language with type-checking across module boundaries, but with enough flexibility in its type system that heap allocators could be written in Mesa.[6]

Due to its strict separation between interface and implementation, Mesa allows true incremental compilation and encouragesarchitecture- andplatform-independent programming. They also simplified source-leveldebugging, including remote debugging via theEthernet.

Mesa had richexception handling facilities, with four types of exceptions. It had support for thread synchronization via monitors. Mesa was the first language to implement monitor BROADCAST, a concept introduced by the Pilot operating system.[7]

Syntax

[edit]

Mesa has an "imperative" and "algebraic"syntax, based onALGOL andPascal rather than on BCPL orC; for instance,compound commands are indicated by theBEGIN andEND keywords rather thanbraces. In Mesa, all keywords are written in uppercase.[1]

Due to PARC's using the 1963 variant ofASCII rather than the more common 1967 variant, the Alto's character set included a left-pointing arrow (←) rather than an underscore. The result of this is that Alto programmers (including those using Mesa, Smalltalk etc.) conventionally usedcamelCase for compound identifiers, a practice which was incorporated in PARC's standard programming style. On the other hand, the availability of the left-pointing arrow allowed them to use it for the assignment operator, as it originally had been in ALGOL.

When the Mesa designers wanted to implement an exception facility, they hired a recent M.Sc. graduate[who?] from Colorado who had written his thesis on exception handling facilities in algorithmic languages. This led to the richest exception facility for its time, with primitivesSIGNAL,ERROR,ABORT,RETRY,CATCH, andCONTINUE. As the language did not have type-safe checks to verify full coverage for signal handling, uncaught exceptions were a common cause of bugs in released software.

Cedar

[edit]

Mesa was the precursor to the programming language Cedar.[8][9] Cedar's main additions weregarbage collection,dynamic types, better string support throughropes, a limited form oftype parameterization, and special syntax for identifying thetype-safe parts of multi-module software packages, to ensure deterministic execution and preventmemory leaks.

Descendants

[edit]
  • TheUnited States Department of Defense approached Xerox to use Mesa for its "IronMan" programming language (seeSteelman language requirements), but Xerox declined due to conflicting goals. Xerox PARC employees argued that Mesa was a proprietary advantage that made Xerox software engineers more productive than engineers at other companies. The Department of Defense instead eventually chose and developed theAda programming language from the candidates.
  • The original Star Desktop evolved into the ViewPoint Desktop and later becameGlobalView which was ported to various Unix platforms, such asSunOS Unix andAIX. A Mesa toC compiler was written and the resulting code compiled for the target platform. This was a workable solution but made it nearly impossible to develop on the Unix machines since the power of the Mesa compiler and associated tool chain was lost using this approach. There was some commercial success on Sun SPARC workstations in the publishing world, but this approach resulted in isolating the product to narrow market opportunities.
  • In 1976, during a sabbatical at Xerox PARC,Niklaus Wirth became acquainted with Mesa, which had a major influence in the design of hisModula-2 language.[10]
  • Java explicitly refers to Mesa as a predecessor.[11]

See also

[edit]

References

[edit]
  1. ^abcMitchell, James G.; Maybury, William; Sweet, Richard (1979):Mesa Language Manual - version 5.0" XEROX PARC, Computer Systems Laboratory (CSL), Technical Report CSL-79-3. Online copy at www.bitsavers.org, accessed on 2019-05-15.
  2. ^Mesa, Software Preservation Group
  3. ^Perry, T.S. (May 1988). "'PostScript' prints anything: a case history".IEEE Spectrum.25 (5):42–46.doi:10.1109/6.4550.S2CID 33376390.
  4. ^Mesa Language Manual, chapter 7. (TheManual uses the termmodule to mean a source file.)
  5. ^Sweet, Richard; Sandman, James (March 1982), "Empirical analysis of the mesa instruction set",Proceedings of the first international symposium on Architectural support for programming languages and operating systems - ASPLOS-I, pp. 158–166,doi:10.1145/800050.801839,ISBN 0897910664,S2CID 1353842
  6. ^Geschke, Charles;Morris, James H.; Satterthwaite, Edwin H. (August 1977)."Early Experience with Mesa".Communications of the ACM.20 (8):540–552.doi:10.1145/359763.359771.S2CID 15737342.
  7. ^Lampson, Butler W.; Redell, David D. (February 1980)."Experience with Processes and Monitors in Mesa".Communications of the ACM.23 (2):105–117.CiteSeerX 10.1.1.142.5765.doi:10.1145/358818.358824.S2CID 1594544.
  8. ^Lampson, Butler W.A Description of the Cedar Language. Xerox PARC Technical Report. Archived fromthe original on 13 February 2008.
  9. ^Swinehart, Daniel C.; Zellweger, Polle T.; Hagmann, Robert B. (July 1985). "The Structure of Cedar".SIGPLAN Notices.20 (7):230–244.CiteSeerX 10.1.1.110.9565.doi:10.1145/800225.806844.S2CID 2788992.
  10. ^Wirth, Niklaus (2007)."Modula-2 and Oberon".Proceedings of the third ACM SIGPLAN conference on History of programming languages. San Diego. pp. 3-1 –3-10.CiteSeerX 10.1.1.91.1447.doi:10.1145/1238844.1238847.ISBN 978-1-59593-766-7.S2CID 1918928.{{cite book}}: CS1 maint: location missing publisher (link).
  11. ^Gosling, James;Joy, Bill;Steele, Guy;Bracha, Gilad.Java Language Specification (2nd ed.).

External links

[edit]
Founders
Corporate directors
  • Keith Cozza (chairman)
  • John Visentin (vice chairman and CEO)
Divisions
Defunct, divested or acquired
Hardware products
Copiers
Printers
Electronic publishing
Workstations
Minicomputers
and servers
Prototypes
Software products
Operating systems
Computer languages
IDEs
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mesa_(programming_language)&oldid=1334306919#Cedar"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp