316:(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.
327:", 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.
1108:
319:
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
543:
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
446:
When the Mesa designers wanted to implement an exception facility, they hired a recent M.Sc. graduate 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 primitives
520:), 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 the
442:
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.
437:
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 used
389:
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.
323:
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 "
471:. 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.
1062:
988:
294:, an experimental micro-coded workstation. Initially, its spread was confined to PARC and a few universities to which Xerox had donated some Altos.
1403:
1398:
939:
363:
with type-checking across module boundaries, but with enough flexibility in its type system that heap allocators could be written in Mesa.
17:
206:
of the procedures in the interface. To use a library, a program or higher-level library must "import" the definitions. The Mesa compiler
601:" XEROX PARC, Computer Systems Laboratory (CSL), Technical Report CSL-79-3. Online copy at www.bitsavers.org, accessed on 2019-05-15.
1393:
1388:
680:
Proceedings of the first international symposium on
Architectural support for programming languages and operating systems - ASPLOS-I
598:
544:
Sun SPARC workstations in the publishing world, but this approach resulted in isolating the product to narrow market opportunities.
571:
290:
Mesa was originally designed in the
Computer Systems Laboratory (CSL), a branch of the Xerox Palo Alto Research Center, for the
1408:
915:
480:
366:
Due to its strict separation between interface and implementation, Mesa allows true incremental compilation and encourages
513:
360:
1003:
221:
210:
all uses of imported entities; this combination of separate compilation with type-checking was unusual at the time.
1092:
1069:
172:
821:
970:
697:
517:
171:. The language name was a pun based upon the programming language catchphrases of the time, because Mesa is a
1348:
407:
313:
213:
Mesa introduced several other innovations in language design and implementation, notably in the handling of
1179:
1153:
403:
297:
Mesa was later adopted as the systems programming language for Xerox's commercial workstations such as the
195:
140:
772:
558:
335:
267:
132:
79:
532:
521:
837:
Swinehart, Daniel C.; Zellweger, Polle T.; Hagmann, Robert B. (July 1985). "The
Structure of Cedar".
1031:
853:
789:
334:
programming language. Many Mesa programmers and developers left Xerox in 1985; some of them went to
1358:
898:
411:
306:
240:
183:
1169:
324:
225:
214:
1353:
1026:
893:
848:
784:
678:
Sweet, Richard; Sandman, James (March 1982), "Empirical analysis of the mesa instruction set",
540:
1327:
488:
367:
164:
270:, and was an important vehicle for the development and dissemination of the fundamentals of
536:
371:
156:
8:
1174:
610:
427:
415:
262:
Mesa and Cedar had a major influence on the design of other important languages, such as
1119:
933:
921:
866:
802:
750:
703:
640:
499:
parts of multi-module software packages, to ensure deterministic execution and prevent
386:
218:
207:
45:
479:
Mesa was the precursor to the programming language Cedar. Cedar's main additions were
911:
768:
693:
594:
492:
236:
754:
644:
1239:
1036:
1014:
925:
903:
890:
Proceedings of the third ACM SIGPLAN conference on
History of programming languages
870:
858:
806:
794:
740:
707:
683:
632:
279:
1293:
1097:
1007:
839:
724:
720:
35:
885:
1383:
1322:
1216:
1055:
302:
203:
160:
551:
became acquainted with Mesa, which had a major influence in the design of his
527:
The original Star
Desktop evolved into the ViewPoint Desktop and later became
1377:
1234:
954:
548:
168:
1000:
907:
1272:
1040:
966:
862:
798:
745:
728:
688:
1116:
516:
approached Xerox to use Mesa for its "IronMan" programming language (see
500:
484:
320:
the instruction set and published a paper on the resultant code density.
187:
105:
623:
Perry, T.S. (May 1988). "'PostScript' prints anything: a case history".
1332:
1267:
1262:
1211:
1206:
1148:
994:
962:
528:
339:
298:
291:
252:
248:
232:
144:
50:
1257:
496:
439:
1298:
1277:
958:
636:
552:
379:
375:
343:
263:
136:
399:
1107:
1078:
434:
374:-independent programming. They also simplified source-level
275:
243:, however, most of the Alto's system software was written in
179:
120:
338:
where they used their experience with Mesa in the design of
244:
719:
836:
271:
1047:
247:. Mesa was the system programming language of the later
531:
which was ported to various Unix platforms, such as
330:
Within Xerox, Mesa was eventually superseded by the
989:Mesa Programming Language Manual, Version 5 (1979)
953:
430:. In Mesa, all keywords are written in uppercase.
274:, networked environments, and the other advances
255:desktop environment. Xerox PARC later developed
1375:
773:"Experience with Processes and Monitors in Mesa"
312:A secondary development environment, called the
1010:, Don Gillies, Xerox SDD/ISD Employee, 1984β86.
1063:
767:
604:
677:
547:In 1976, during a sabbatical at Xerox PARC,
597:; Maybury, William; Sweet, Richard (1979):
561:explicitly refers to Mesa as a predecessor.
1070:
1056:
938:: CS1 maint: location missing publisher (
1030:
1013:
897:
852:
788:
744:
727:; Satterthwaite, Edwin H. (August 1977).
687:
495:, and special syntax for identifying the
398:Mesa has an "imperative" and "algebraic"
85:Mesa 6.0 (Version 41) / July 1981
590:
588:
586:
433:Due to PARC's using the 1963 variant of
186:. Every library module has at least two
572:History of the graphical user interface
182:-like language with strong support for
14:
1404:Statically typed programming languages
1376:
1130:John Visentin (vice chairmanβ and CEO)
1017:(April 1984). "A Tour Through Cedar".
713:
1399:Programming languages created in 1976
1051:
883:
830:
813:
622:
583:
378:, including remote debugging via the
771:; Redell, David D. (February 1980).
761:
823:A Description of the Cedar Language
819:
514:United States Department of Defense
361:strongly typed programming language
24:
599:Mesa Language Manual - version 5.0
299:Xerox 8010 (Xerox Star, Dandelion)
159:developed in the mid 1970s at the
25:
1420:
982:
173:"high level" programming language
40:Computer Systems Laboratory (CSL)
1394:Concurrent programming languages
1389:Procedural programming languages
1106:
892:. San Diego. pp. 3-1β3-10.
487:, better string support through
349:
259:, which was a superset of Mesa.
947:
877:
161:Xerox Palo Alto Research Center
826:. Xerox PARC Technical Report.
671:
651:
616:
518:Steelman language requirements
506:
194:file specifying the library's
13:
1:
1409:Systems programming languages
1163:Defunct, divested or acquired
613:, Software Preservation Group
577:
314:Xerox Development Environment
729:"Early Experience with Mesa"
354:
278:contributed to the field of
18:Cedar (programming language)
7:
972:Java Language Specification
565:
336:DEC Systems Research Center
87:; 43 years ago
62:; 48 years ago
10:
1425:
331:
285:
256:
251:workstations, and for the
231:Mesa was developed on the
1341:
1318:
1311:
1286:
1248:
1225:
1199:
1192:
1162:
1144:
1137:
1115:
1104:
1085:
1077:
777:Communications of the ACM
733:Communications of the ACM
393:
131:
126:
119:
114:
104:
100:
78:
74:
56:
44:
34:
522:Ada programming language
474:
305:, in particular for the
241:graphical user interface
1170:Scientific Data Systems
908:10.1145/1238844.1238847
884:Wirth, Niklaus (2007).
668:to mean a source file.)
410:rather than on BCPL or
226:incremental compilation
1127:Keith Cozza (chairman)
1041:10.1109/ms.1984.234050
1006:26 August 2016 at the
307:Pilot operating system
1328:Xerox Network Systems
886:"Modula-2 and Oberon"
863:10.1145/800225.806844
799:10.1145/358818.358824
746:10.1145/359763.359771
689:10.1145/800050.801839
493:type parameterization
426:keywords rather than
418:are indicated by the
303:Xerox 6085 (Daybreak)
202:files specifying the
165:Palo Alto, California
1001:World-Stop Debuggers
995:Other Mesa documents
682:, pp. 158β166,
658:Mesa Language Manual
524:from the candidates.
491:, a limited form of
157:programming language
1175:Diablo Data Systems
820:Lampson, Butler W.
235:, one of the first
215:software exceptions
184:modular programming
57:First appeared
31:
769:Lampson, Butler W.
660:, chapter 7. (The
595:Mitchell, James G.
481:garbage collection
387:exception handling
237:personal computers
29:
1371:
1370:
1367:
1366:
1342:Operating systems
1312:Software products
1307:
1306:
1193:Hardware products
1188:
1187:
1015:Teitelman, Warren
917:978-1-59593-766-7
416:compound commands
198:plus one or more
150:
149:
106:Typing discipline
16:(Redirected from
1416:
1316:
1315:
1240:Xerox 500 series
1197:
1196:
1142:
1141:
1110:
1093:Joseph C. Wilson
1072:
1065:
1058:
1049:
1048:
1044:
1034:
997:at bitsavers.org
991:at bitsavers.org
977:
976:
951:
945:
943:
937:
929:
901:
881:
875:
874:
856:
834:
828:
827:
817:
811:
810:
792:
765:
759:
758:
748:
725:Morris, James H.
721:Geschke, Charles
717:
711:
710:
691:
675:
669:
655:
649:
648:
620:
614:
608:
602:
592:
470:
466:
462:
458:
454:
450:
425:
421:
414:; for instance,
280:computer science
95:
93:
88:
70:
68:
63:
36:Designed by
32:
28:
21:
1424:
1423:
1419:
1418:
1417:
1415:
1414:
1413:
1374:
1373:
1372:
1363:
1337:
1303:
1282:
1250:
1244:
1227:
1221:
1184:
1158:
1133:
1111:
1102:
1098:Chester Carlson
1081:
1076:
1032:10.1.1.105.3163
1008:Wayback Machine
985:
980:
975:(2nd ed.).
952:
948:
931:
930:
918:
882:
878:
854:10.1.1.110.9565
840:SIGPLAN Notices
835:
831:
818:
814:
790:10.1.1.142.5765
766:
762:
718:
714:
700:
676:
672:
656:
652:
621:
617:
609:
605:
593:
584:
580:
568:
509:
477:
468:
464:
460:
456:
452:
448:
423:
419:
396:
357:
352:
342:, and later of
288:
222:synchronization
96:
91:
89:
86:
66:
64:
61:
23:
22:
15:
12:
11:
5:
1422:
1412:
1411:
1406:
1401:
1396:
1391:
1386:
1369:
1368:
1365:
1364:
1362:
1361:
1356:
1351:
1345:
1343:
1339:
1338:
1336:
1335:
1330:
1325:
1323:Bravo (editor)
1319:
1313:
1309:
1308:
1305:
1304:
1302:
1301:
1296:
1290:
1288:
1284:
1283:
1281:
1280:
1275:
1270:
1265:
1260:
1254:
1252:
1246:
1245:
1243:
1242:
1237:
1231:
1229:
1223:
1222:
1220:
1219:
1214:
1209:
1203:
1201:
1194:
1190:
1189:
1186:
1185:
1183:
1182:
1177:
1172:
1166:
1164:
1160:
1159:
1157:
1156:
1151:
1145:
1139:
1135:
1134:
1132:
1131:
1128:
1124:
1122:
1113:
1112:
1105:
1103:
1101:
1100:
1095:
1089:
1087:
1083:
1082:
1075:
1074:
1067:
1060:
1052:
1046:
1045:
1011:
998:
992:
984:
983:External links
981:
979:
978:
955:Gosling, James
946:
916:
899:10.1.1.91.1447
876:
847:(7): 230β244.
829:
812:
783:(2): 105β117.
760:
739:(8): 540β552.
712:
698:
670:
664:uses the term
650:
637:10.1109/6.4550
615:
603:
581:
579:
576:
575:
574:
567:
564:
563:
562:
556:
545:
525:
508:
505:
476:
473:
395:
392:
385:Mesa had rich
356:
353:
351:
348:
287:
284:
204:implementation
148:
147:
129:
128:
124:
123:
117:
116:
112:
111:
110:Strong, static
108:
102:
101:
98:
97:
84:
82:
80:Stable release
76:
75:
72:
71:
58:
54:
53:
48:
42:
41:
38:
9:
6:
4:
3:
2:
1421:
1410:
1407:
1405:
1402:
1400:
1397:
1395:
1392:
1390:
1387:
1385:
1382:
1381:
1379:
1360:
1357:
1355:
1352:
1350:
1347:
1346:
1344:
1340:
1334:
1331:
1329:
1326:
1324:
1321:
1320:
1317:
1314:
1310:
1300:
1297:
1295:
1292:
1291:
1289:
1285:
1279:
1276:
1274:
1271:
1269:
1266:
1264:
1261:
1259:
1256:
1255:
1253:
1247:
1241:
1238:
1236:
1235:Xerox Sigma 9
1233:
1232:
1230:
1226:Minicomputers
1224:
1218:
1215:
1213:
1210:
1208:
1205:
1204:
1202:
1198:
1195:
1191:
1181:
1178:
1176:
1173:
1171:
1168:
1167:
1165:
1161:
1155:
1152:
1150:
1147:
1146:
1143:
1140:
1136:
1129:
1126:
1125:
1123:
1121:
1118:
1114:
1109:
1099:
1096:
1094:
1091:
1090:
1088:
1084:
1080:
1073:
1068:
1066:
1061:
1059:
1054:
1053:
1050:
1042:
1038:
1033:
1028:
1024:
1020:
1019:IEEE Software
1016:
1012:
1009:
1005:
1002:
999:
996:
993:
990:
987:
986:
974:
973:
968:
967:Bracha, Gilad
964:
960:
956:
950:
941:
935:
927:
923:
919:
913:
909:
905:
900:
895:
891:
887:
880:
872:
868:
864:
860:
855:
850:
846:
842:
841:
833:
825:
824:
816:
808:
804:
800:
796:
791:
786:
782:
778:
774:
770:
764:
756:
752:
747:
742:
738:
734:
730:
726:
722:
716:
709:
705:
701:
695:
690:
685:
681:
674:
667:
663:
659:
654:
646:
642:
638:
634:
630:
626:
625:IEEE Spectrum
619:
612:
607:
600:
596:
591:
589:
587:
582:
573:
570:
569:
560:
557:
554:
550:
549:Niklaus Wirth
546:
542:
538:
534:
530:
526:
523:
519:
515:
511:
510:
504:
502:
498:
494:
490:
486:
485:dynamic types
482:
472:
444:
441:
436:
431:
429:
417:
413:
409:
405:
401:
391:
388:
383:
381:
377:
373:
369:
364:
362:
350:Main features
347:
345:
341:
337:
333:
328:
326:
321:
317:
315:
310:
308:
304:
300:
295:
293:
283:
281:
277:
273:
269:
265:
260:
258:
254:
250:
246:
242:
238:
234:
229:
227:
223:
220:
216:
211:
209:
205:
201:
197:
193:
189:
185:
181:
176:
174:
170:
169:United States
166:
162:
158:
154:
146:
142:
138:
134:
130:
125:
122:
118:
115:Influenced by
113:
109:
107:
103:
99:
83:
81:
77:
73:
59:
55:
52:
49:
47:
43:
39:
37:
33:
27:
19:
1251:and printers
1200:Workstations
1025:(2): 44β73.
1022:
1018:
971:
949:
889:
879:
844:
838:
832:
822:
815:
780:
776:
763:
736:
732:
715:
679:
673:
665:
661:
657:
653:
631:(5): 42β46.
628:
624:
618:
606:
539:. A Mesa to
501:memory leaks
478:
445:
432:
397:
384:
368:architecture
365:
358:
329:
322:
318:
311:
296:
289:
261:
230:
212:
199:
191:
177:
152:
151:
26:
1228:and servers
963:Steele, Guy
507:Descendants
402:, based on
359:Mesa was a
208:type-checks
192:definitions
178:Mesa is an
1378:Categories
1333:Interpress
1287:Prototypes
1268:Xerox 9700
1263:Xerox 2700
1180:Fuji Xerox
1149:Xerox PARC
699:0897910664
578:References
533:SunOS Unix
529:GlobalView
253:GlobalView
249:Xerox Star
233:Xerox Alto
145:PostScript
127:Influenced
51:Xerox PARC
1294:NoteTaker
1258:Xerox 914
1138:Divisions
1120:Directors
1117:Corporate
1027:CiteSeerX
959:Joy, Bill
934:cite book
894:CiteSeerX
849:CiteSeerX
785:CiteSeerX
555:language.
497:type-safe
440:camelCase
376:debugging
355:Semantics
340:Modula-2+
196:interface
190:files: a
46:Developer
1354:Xerox OS
1349:UTS/CP-V
1299:Dynabook
1278:DocuTech
1249:Scanners
1217:Daybreak
1086:Founders
1004:Archived
755:15737342
645:33376390
566:See also
553:Modula-2
469:CONTINUE
380:Ethernet
372:platform
344:Modula-3
264:Modula-2
137:Modula-2
926:1918928
871:2788992
807:1594544
708:1353842
286:History
239:with a
200:program
92:1981-07
90: (
65: (
1273:Phaser
1029:
924:
914:
896:
869:
851:
805:
787:
753:
706:
696:
666:module
662:Manual
643:
467:, and
449:SIGNAL
428:braces
408:Pascal
400:syntax
394:Syntax
370:- and
224:, and
219:thread
188:source
1384:Xerox
1359:Pilot
1079:Xerox
922:S2CID
867:S2CID
803:S2CID
751:S2CID
704:S2CID
641:S2CID
489:ropes
475:Cedar
465:CATCH
461:RETRY
457:ABORT
453:ERROR
435:ASCII
420:BEGIN
404:ALGOL
332:Cedar
276:Xerox
257:Cedar
180:ALGOL
155:is a
141:Cedar
121:ALGOL
1212:Star
1207:Alto
940:link
912:ISBN
694:ISBN
611:Mesa
559:Java
535:and
512:The
422:and
406:and
325:hack
301:and
292:Alto
272:GUIs
268:Java
266:and
245:BCPL
153:Mesa
133:Java
67:1976
60:1976
30:Mesa
1154:ACS
1037:doi
904:doi
859:doi
795:doi
741:doi
684:doi
633:doi
537:AIX
424:END
163:in
1380::
1035:.
1021:.
969:.
965:;
961:;
957:;
936:}}
932:{{
920:.
910:.
902:.
888:.
865:.
857:.
845:20
843:.
801:.
793:.
781:23
779:.
775:.
749:.
737:20
735:.
731:.
723:;
702:,
692:,
639:.
629:25
627:.
585:^
503:.
483:,
463:,
459:,
455:,
451:,
382:.
346:.
309:.
282:.
228:.
217:,
175:.
167:,
143:,
139:,
135:,
1071:e
1064:t
1057:v
1043:.
1039::
1023:1
944:.
942:)
928:.
906::
873:.
861::
809:.
797::
757:.
743::
686::
647:.
635::
541:C
412:C
94:)
69:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.