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

Mesa [1] - это язык программирования, разработанный в конце 1970-х в Исследовательском центре Xerox Пало-Альто в Пало-Альто, Калифорния , США . Название языка было каламбуром, основанным на модных словах языка программирования того времени, потому что 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» Язык программирования, но 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 .
  4. ^ Руководство по языку Mesa , глава 7. (В Руководстве термин модуль используется для обозначения исходного файла.)
  5. ^ Милый, Ричард; Sandman, Джеймс (март 1982 г.), «Эмпирический анализ набора инструкций Mesa» , ASPLOS I Proceedings of the First International Symposium on Architectural Support for Programming Languages ​​and Operating Systems
  6. ^ Гешке, Чарльз ; Моррис, Джеймс Х .; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Мезой». Коммуникации ACM . 20 (8): 540–552. DOI : 10.1145 / 359763.359771 .
  7. ^ Лэмпсон, Батлер В .; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Mesa» . Коммуникации ACM . 23 (2): 105–117. CiteSeerX 10.1.1.142.5765 . DOI : 10.1145 / 358818.358824 . 
  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 . 
  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..
  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 .