Mesa (язык программирования)


Из Википедии, свободной энциклопедии
  (Перенаправлено из Cedar (среда программирования) )
Перейти к навигации Перейти к поиску

Mesa [1] - это язык программирования, разработанный в конце 1970-х в исследовательском центре Xerox Palo Alto Research Center в Пало-Альто, Калифорния , США . Название языка было игрой слов, основанной на модных словах языка программирования того времени, потому что Mesa - это язык программирования «высокого уровня» .

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. Выпускник Колорадо, который написал диссертацию по средствам обработки исключений на алгоритмических языках. Это привело к появлению самого богатого средства исключения для своего времени с примитивами SIGNAL , ERROR , ABORT , RETRY , CATCH и CONTINUE . Поскольку в языке не было типобезопасных проверок для проверки полного покрытия обработки сигналов, неперехваченные исключения были частой причиной ошибок в выпущенном программном обеспечении.

Кедр

Mesa был предшественником языка программирования Cedar. [8] [9] Основными дополнениями Cedar были сборка мусора , динамические типы , улучшенная поддержка строк с помощью веревок , ограниченная форма параметризации типов и специальный синтаксис для идентификации типобезопасных частей многомодульных программных пакетов для обеспечения детерминированного выполнения. и предотвратить утечку памяти .

Потомки

  • Государственный департамент Соединенных обороны подошли Xerox использовать Mesa для его «IronMan» Язык программирования (см требований SteelMan языка ), но 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]

Смотрите также

  • История графического пользовательского интерфейса

использованная литература

  1. ^ a b c Митчелл, Джеймс Г .; Мэйбери, Уильям; Свит, Ричард (1979): Руководство по языку Mesa - версия 5.0 "XEROX PARC, Лаборатория компьютерных систем (CSL), Технический отчет CSL-79-3. Электронная копия на сайте www.bitsavers.org, дата обращения 15 мая 2019.
  2. ^ Меса , Группа сохранения программного обеспечения
  3. Перейти ↑ Perry, TS (май 1988 г.). « POSTSCRIPT“печатает что - нибудь: история болезни». IEEE Spectrum . 25 (5): 42–46. DOI : 10.1109 / 6.4550 . S2CID  33376390 .
  4. ^ Руководство по языку Mesa , глава 7. (В Руководстве термин модуль используется для обозначения исходного файла.)
  5. ^ Милый, Ричард; Sandman, Джеймс (март 1982 г.), «эмпирический анализ набора инструкций Mesa» , ASPLOS I Труды Первого Международного симпозиума по Architectural Поддержка Языки программирования и операционные системы : 158-166, DOI : 10,1145 / 800050,801839 , ISBN 0897910664, S2CID  1353842
  6. ^ Гешке, Чарльз ; Моррис, Джеймс Х .; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Мезой». Коммуникации ACM . 20 (8): 540–552. DOI : 10.1145 / 359763.359771 . S2CID 15737342 . 
  7. ^ Лэмпсон, Батлер В .; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Мезе» . Коммуникации ACM . 23 (2): 105–117. CiteSeerX 10.1.1.142.5765 . DOI : 10.1145 / 358818.358824 . S2CID 1594544 .  
  8. ^ Лэмпсон, Батлер В. Описание кедрового языка . Технический отчет Xerox PARC.
  9. ^ 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 .  
  10. ^ Вирт, Никлаус (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 ..
  11. ^ Гослинг, Джеймс ; Джой, Билл ; Стил, Гай ; Браха, Гилад . Спецификация языка 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 .
Получено с https://en.wikipedia.org/w/index.php?title=Mesa_(programming_language)&oldid=1035196579#Cedar "