Mesa [1] - это язык программирования, разработанный в конце 1970-х в Исследовательском центре Xerox Пало-Альто в Пало-Альто, Калифорния , США . Название языка было каламбуром, основанным на модных словах языка программирования того времени, потому что Mesa - это язык программирования «высокого уровня» .
Разработано | Лаборатория компьютерных систем (CSL) |
---|---|
Разработчик | Xerox PARC |
Впервые появился | 1976 [2] |
Стабильный выпуск | Mesa 6.0 (версия 41) / июль 1981 г . |
Печатная дисциплина | Сильный, статичный |
Под влиянием | |
АЛГОЛ | |
Под влиянием | |
Java , Модула-2 , Кедр , PostScript [3] |
Mesa является Алгол -как язык с сильной поддержкой для модульного программирования . Каждый библиотечный модуль имеет как минимум два исходных файла: файл определений, определяющий интерфейс библиотеки, плюс один или несколько программных файлов, определяющих реализацию процедур в интерфейсе. [4] Чтобы использовать библиотеку, программа или библиотека более высокого уровня должны «импортировать» определения. Компилятор Mesa проверяет все типы использования импортированных сущностей; такое сочетание раздельной компиляции с проверкой типов было необычным в то время. [ необходима цитата ]
Mesa представила несколько других нововведений в дизайне и реализации языка, особенно в обработке программных исключений , синхронизации потоков и инкрементной компиляции .
Mesa был разработан на Xerox Alto , одном из первых персональных компьютеров с графическим пользовательским интерфейсом , однако большая часть системного программного обеспечения Alto была написана на BCPL . Mesa был системным языком программирования более поздних рабочих станций Xerox Star и среды рабочего стола GlobalView . Позднее Xerox PARC разработала Cedar , который был расширенной версией Mesa.
Mesa и Cedar оказали большое влияние на разработку других важных языков, таких как Modula-2 и Java , и были важным средством разработки и распространения основ графического интерфейса пользователя , сетевых сред и других достижений, которые Xerox внесла в область информатики .
История
Mesa был первоначально разработан в лаборатории компьютерных систем (CSL), филиал в исследовательском центре Palo Alto Xerox, для Alto , экспериментальной микро-кодированных станций. Первоначально его распространение было ограничено PARC и несколькими университетами, которым Xerox пожертвовала часть Altos.
Позже Mesa был принят в качестве языка системного программирования для коммерческих рабочих станций Xerox, таких как Xerox 8010 (Xerox Star, Dandelion) и Xerox 6085 (Daybreak) , в частности для операционной системы Pilot .
Вторичная среда разработки, называемая Xerox Development Environment (XDE), позволяла разработчикам отлаживать как пилотную операционную систему, так и приложения ViewPoint с графическим интерфейсом пользователя, используя механизм всемирной замены. Это позволило поменять местами все «состояние» мира и позволило отладить низкоуровневые сбои системы, которые парализовали всю систему. Этот метод не очень хорошо масштабировался для больших образов приложений (несколько мегабайт), и поэтому мир Pilot / Mesa в более поздних выпусках отошел от представления обмена мира, когда машины с микрокодированием были постепенно заменены на рабочие станции SPARC и ПК Intel запуск эмулятора Mesa PrincOps для базового набора инструкций оборудования.
Mesa была скомпилирована на языке стековых машин, якобы с самой высокой плотностью кода из когда-либо достигнутых (примерно 4 байта на оператор языка высокого уровня). Это рекламировалось в статье 1981 года, в которой разработчики из отдела разработки систем Xerox (в то время являвшегося отделом разработки PARC) настроили набор инструкций и опубликовали статью о плотности результирующего кода. [5]
Меса преподавалась на курсе программирования Mesa, который знакомил людей с широким спектром технологий, доступных Xerox в то время, и закончился тем, что программист написал « хак », работающую программу, предназначенную для того, чтобы быть полезной. Фактическим примером такого взлома является BWSMagnifier, который был написан в 1988 году и позволял людям увеличивать части экрана рабочей станции в соответствии с изменяемым размером окна и изменяемым коэффициентом увеличения. Обученные программисты Mesa из Xerox хорошо разбирались в основах графического интерфейса пользователя, сетей, исключений и многопоточного программирования, почти за десять лет до того, как они стали стандартными инструментами торговли.
В Xerox на смену Mesa пришел язык программирования Cedar . Многие программисты и разработчики Mesa покинули Xerox в 1985 году; некоторые из них отправились в DEC Systems Research Center, где они использовали свой опыт работы с Mesa при разработке Modula-2 + , а затем Modula-3 .
Основные особенности
Семантика
Mesa был строго типизированным языком программирования с проверкой типов через границы модулей, но обладал достаточной гибкостью в своей системе типов, чтобы распределители кучи могли быть написаны на Mesa. [6]
Из - за его строгое разделение между интерфейсом и реализацией, Mesa позволяет вести инкрементную компиляцию и поощряет архитектуру - и платформу -независимого программирование. Они также упростили отладку на уровне исходного кода , включая удаленную отладку через Ethernet .
Mesa имеет богатые средства обработки исключений с четырьмя типами исключений. У него была поддержка синхронизации потоков через мониторы. Mesa был первым языком, реализовавшим функцию Monitor BROADCAST, концепцию, введенную операционной системой Pilot. [7]
Синтаксис
Mesa имеет «императивный» и «алгебраический» синтаксис , основанный на АЛГОЛе и Паскале, а не на BCPL или C ; например, составные команды обозначаются BEGIN и END вместо фигурных скобок . В Mesa все ключевые слова пишутся в верхнем регистре. [1]
Из-за особенности варианта ASCII, используемого в PARC, набор символов Alto включал стрелку, указывающую влево (←), а не подчеркивание. Результатом этого является то, что программисты Alto (в том числе использующие Mesa, Smalltalk и т. Д.) Традиционно использовали CamelCase для составных идентификаторов, практика, которая была включена в стандартный стиль программирования PARC. С другой стороны, наличие стрелки, указывающей влево, позволило им использовать ее для оператора присваивания, как это было изначально в ALGOL.
Когда дизайнеры Mesa хотели реализовать средство исключения, они наняли недавнего M.Sc. Выпускник Колорадо, который написал диссертацию по средствам обработки исключений на алгоритмических языках. Это привело к созданию самого богатого средства исключения для своего времени с примитивами. СИГНАЛ , ОШИБКА , ABORT , ПОВТОР , CATCH и ПРОДОЛЖИТЬ . Поскольку в языке не было типобезопасных проверок для проверки полного покрытия обработки сигналов, неперехваченные исключения были частой причиной ошибок в выпущенном программном обеспечении.
Кедр
Mesa был предшественником языка программирования Cedar. [8] [9] Основными дополнениями Cedar были сборка мусора , динамические типы , улучшенная поддержка строк с помощью веревок , ограниченная форма параметризации типов и специальный синтаксис для идентификации типобезопасных частей многомодульных программных пакетов для обеспечения детерминированного выполнения и предотвратить утечку памяти .
Потомки
- Государственный департамент Соединенных обороны подошел Xerox использовать Mesa для его «IronMan» Язык программирования, но Xerox снизилась из - за конфликтующих целей. Сотрудники Xerox PARC утверждали, что Mesa является фирменным преимуществом, которое делает инженеров-программистов Xerox более продуктивными, чем инженеров других компаний. Вместо этого министерство обороны в конечном итоге выбрало и разработало язык программирования Ada из кандидатов.
- Первоначальный Star Desktop превратился в ViewPoint Desktop, а затем стал GlobalView, который был портирован на различные платформы Unix, такие как SunOS Unix и AIX . Был написан компилятор Mesa to C, и полученный код скомпилирован для целевой платформы. Это было работоспособное решение, но сделало его практически невозможным для разработки на машинах Unix, поскольку при таком подходе была потеряна мощность компилятора Mesa и связанного с ним инструментария. Рабочие станции Sun SPARC имели некоторый коммерческий успех в издательском мире, но такой подход привел к тому, что продукт был изолирован от ограниченных рыночных возможностей.
- В 1976 году, во время творческого отпуска в Xerox PARC, Никлаус Вирт познакомился с Mesa, которая оказала большое влияние на разработку его языка Modula-2 . [10]
- Java явно ссылается на Mesa как на предшественника. [11]
Смотрите также
- История графического пользовательского интерфейса
Рекомендации
- ^ a b c Митчелл, Джеймс Г .; Мэйбери, Уильям; Свит, Ричард (1979): Руководство по языку Mesa - версия 5.0 "XEROX PARC, Лаборатория компьютерных систем (CSL), Технический отчет CSL-79-3. Электронная копия на сайте www.bitsavers.org, дата обращения 15 мая 2019.
- ^ Меса , Группа сохранения программного обеспечения
- Перейти ↑ Perry, TS (май 1988 г.). « „ POSTSCRIPT“печатает что - нибудь: история болезни». IEEE Spectrum . 25 (5): 42–46. DOI : 10.1109 / 6.4550 . S2CID 33376390 .
- ^ Руководство по языку Mesa , глава 7. (В Руководстве термин модуль используется для обозначения исходного файла.)
- ^ Милый, Ричард! Sandman, Джеймс (март 1982 г.), «эмпирический анализ набора инструкций Mesa» , ASPLOS I Труды Первого Международного симпозиума по Architectural Поддержка Языки программирования и операционные системы : 158-166, DOI : 10,1145 / 800050,801839 , ISBN 0897910664, S2CID 1353842
- ^ Гешке, Чарльз ; Моррис, Джеймс Х .; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Мезой». Коммуникации ACM . 20 (8): 540–552. DOI : 10.1145 / 359763.359771 . S2CID 15737342 .
- ^ Лэмпсон, Батлер В .; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Мезе» . Коммуникации ACM . 23 (2): 105–117. CiteSeerX 10.1.1.142.5765 . DOI : 10.1145 / 358818.358824 . S2CID 1594544 .
- ^ Лэмпсон, Батлер В. Описание кедрового языка . Технический отчет Xerox PARC.
- ^ Swinehart, Daniel C .; Zellweger, Polle T .; Хагманн, Роберт Б. (июль 1985 г.). «Структура кедра». Уведомления SIGPLAN . 20 (7): 230–244. CiteSeerX 10.1.1.110.9565 . DOI : 10.1145 / 800225.806844 . S2CID 2788992 .
- ^ Вирт, Никлаус (2007). «Модула-2 и Оберон» . Материалы 3-й конференции по истории языков программирования . Сан-Диего: 3-1–3-10. CiteSeerX 10.1.1.91.1447 . DOI : 10.1145 / 1238844.1238847 . ISBN 978-1-59593-766-7. S2CID 1918928 ..
- ^ Гослинг, Джеймс ; Джой, Билл ; Стил, Гай ; Браха, Гилад . Спецификация языка Java (2-е изд.).
Внешние ссылки
- Руководство по языку программирования Mesa, версия 5 (1979 г.) на bitsavers.org
- Другие документы Mesa на bitsavers.org
- Отладчики World-Stop , Дон Гиллис, сотрудник Xerox SDD / ISD, 1984-86.
- Тейтельман, Уоррен (апрель 1984 г.). «Путешествие по кедру». Программное обеспечение IEEE . 1 (2): 44–73. CiteSeerX 10.1.1.105.3163 . DOI : 10.1109 / ms.1984.234050 .