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

Меса[1]
РазработаноЛаборатория компьютерных систем (CSL)
РазработчикXerox PARC
Впервые появился1976; 44 года назад (1976)[2]
Стабильный выпуск
Mesa 6.0 (версия 41) / июль 1981 г.; 39 лет назад (1981-07)
Печатная дисциплинаСильный, статичный
Под влиянием
АЛГОЛ
Под влиянием
Ява, Модула-2, Кедр, PostScript[3]

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

Меса - это АЛГОЛ -подобный язык с сильной поддержкой модульное программирование. Каждый библиотечный модуль имеет не менее двух источник файлы: a определения файл с указанием библиотеки интерфейс плюс один или несколько программа файлы с указанием выполнение процедур в интерфейсе.[4] Чтобы использовать библиотеку, программа или библиотека более высокого уровня должны «импортировать» определения. Компилятор Mesa типовые проверки все виды использования импортированных объектов; такое сочетание раздельной компиляции с проверкой типов было необычным в то время.[нужна цитата ]

Mesa представила несколько других нововведений в дизайне и реализации языков, в частности, в обработке исключения программного обеспечения, нить синхронизация, и добавочный сборник.

Меса была разработана на Xerox Alto, один из первых персональные компьютеры с графический интерфейс пользователя однако большая часть системного программного обеспечения Alto была написана на BCPL. Mesa был языком системного программирования более позднего Xerox Star рабочие станции, и для GlobalView окружение рабочего стола. Позднее Xerox PARC разработал Кедр, который был расширением Mesa.

Меса и Кедр оказали большое влияние на дизайн других важных языков, таких как Модула-2 и Ява, и был важным средством развития и распространения основ GUI, сетевые среды и другие достижения Ксерокс внес вклад в сферу Информатика.

История

Изначально Mesa была разработана в Лаборатории компьютерных систем (CSL), филиале исследовательского центра Xerox в Пало-Альто, для Альт, экспериментальная рабочая станция с микрокодированием. Первоначально его распространение было ограничено PARC и несколькими университетами, которым Xerox пожертвовала часть Altos.

Позже Mesa был принят в качестве языка системного программирования для коммерческих рабочих станций Xerox, таких как Xerox 8010 (Xerox Star, Одуванчик) и Xerox 6085 (Рассвет), в частности для Пилотная операционная система.

Вторичная среда разработки, называемая Среда разработки Xerox (XDE) позволил разработчикам отлаживать как Pilot операционной системы, так и приложения ViewPoint с графическим интерфейсом пользователя, используя механизм всемирной замены. Это позволило поменять местами все «состояние» мира и позволило отладить низкоуровневые сбои системы, которые парализовали всю систему. Этот метод не очень хорошо масштабировался для изображений больших приложений (несколько мегабайт), и поэтому мир Pilot / Mesa в более поздних выпусках отошел от представления обмена мира, когда машины с микрокодированием были заменены на рабочие станции SPARC и ПК Intel. запуск эмулятора Mesa PrincOps для базового набора инструкций оборудования.

Mesa была скомпилирована на языке стековых машин, предположительно с самой высокой плотностью кода из когда-либо достигнутых (примерно 4 байта на оператор языка высокого уровня). Это рекламировалось в статье 1981 года, в которой разработчики из отдела разработки систем Xerox (в то время являвшегося отделом разработки PARC) настроили набор инструкций и опубликовали статью о полученной плотности кода.[5]

Меса преподавалась на курсе программирования Mesa, который знакомил людей с широким спектром технологий, доступных Xerox в то время, и закончился тем, что программист написал "взломать ", работоспособная программа, разработанная для того, чтобы быть полезной. Фактическим примером такого взлома является BWSMagnifier, который был написан в 1988 году и позволял людям увеличивать части экрана рабочей станции, определяемые окном изменяемого размера и изменяемым коэффициентом увеличения. Обученный Mesa программисты из Xerox хорошо разбирались в основах графического интерфейса пользователя, сетей, исключений и многопоточного программирования, почти за десять лет до того, как они стали стандартными инструментами торговли.

В Xerox компанию Mesa в конечном итоге сменила Кедр язык программирования. Многие программисты и разработчики Mesa покинули Xerox в 1985 году; некоторые из них пошли в Центр системных исследований DEC где они использовали свой опыт работы с Mesa при разработке Модула-2 +, а позже Модула-3.

Основные особенности

Семантика

Меса была строго типизированный язык программирования с проверкой типов через границы модуля, но с достаточной гибкостью системы типов, чтобы распределители кучи могли быть написаны на Mesa.[6]

Из-за строгого разделения интерфейса и реализации Mesa допускает настоящую инкрементную компиляцию и поощряет архитектура - и Платформа -независимое программирование. Они также упростили исходный уровень отладка, включая удаленную отладку через Ethernet.

Меса была богатой Обработка исключений объектов, за четырьмя типами исключений. Он имел поддержку синхронизации потоков через мониторы. Mesa был первым языком, на котором реализована функция Monitor BROADCAST, концепция, представленная операционной системой Pilot.[7]

Синтаксис

Меса имеет «императивное» и «алгебраическое» синтаксис, на основе АЛГОЛ и Паскаль а не на BCPL или C; например, составные команды обозначены НАЧИНАТЬ и КОНЕЦ ключевые слова, а не подтяжки. В Mesa все ключевые слова пишутся в верхнем регистре.[1]

Из-за особенности варианта ASCII, используемого в PARC, набор символов Alto включал стрелку, указывающую влево (←), а не подчеркивание. Результатом этого является то, что программисты Alto (в том числе использующие Mesa, Smalltalk и т. Д.) Обычно использовали CamelCase для составных идентификаторов, практика, которая была включена в стандартный стиль программирования PARC. С другой стороны, наличие стрелки, указывающей влево, позволило им использовать ее для оператора присваивания, как это было изначально в ALGOL.

Когда проектировщики Mesa хотели реализовать средство исключения, они наняли недавнего M.Sc. Выпускник Колорадо, написавший диссертацию по средствам обработки исключений на алгоритмических языках. Это привело к созданию самого богатого средства исключения для своего времени с примитивами СИГНАЛ, ОШИБКА, ABORT, ПОВТОРИТЬ, ЛОВИТЬ, и ПРОДОЛЖИТЬ. Поскольку в языке не было типобезопасных проверок для проверки полного покрытия обработки сигналов, неперехваченные исключения были частой причиной ошибок в выпущенном программном обеспечении.

Кедр

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

Потомки

  • В Министерство обороны США обратилась к Xerox с просьбой использовать Mesa в качестве языка программирования "IronMan", но Xerox отказалась из-за противоречивых целей. Сотрудники Xerox PARC утверждали, что Mesa является фирменным преимуществом, которое делает инженеров-программистов Xerox более продуктивными, чем инженеров других компаний. Вместо этого Министерство обороны в конечном итоге выбрало и разработало Язык программирования Ада от кандидатов.
  • Первоначальный Star Desktop превратился в ViewPoint Desktop, а затем стал GlobalView который был портирован на различные платформы Unix, такие как SunOS Unix и AIX. Меса в C был написан компилятор, и полученный код скомпилирован для целевой платформы. Это было работоспособное решение, но сделало его практически невозможным для разработки на машинах Unix, поскольку при таком подходе была потеряна мощность компилятора Mesa и связанного с ним инструментария. Рабочие станции Sun SPARC имели некоторый коммерческий успех в издательском мире, но такой подход привел к изоляции продукта для ограниченных рыночных возможностей.
  • В 1976 году во время творческого отпуска в Xerox PARC, Никлаус Вирт познакомился с Месой, которая оказала большое влияние на дизайн его Модула-2 язык.[10]
  • Ява явно относится к Mesa как к предшественнику.[11]

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

Рекомендации

  1. ^ а б c Митчелл, Джеймс Г.; Мэйбери, Уильям; Милый, Ричард (1979): Руководство по языку Mesa - версия 5.0 "XEROX PARC, Лаборатория компьютерных систем (CSL), Технический отчет CSL-79-3. Электронная копия на сайте www.bitsavers.org, доступ осуществлен 15 мая 2019 г.
  2. ^ Меса, Группа сохранения программного обеспечения
  3. ^ Перри, Т. (Май 1988 г.). "'PostScript 'печатает что угодно: историю болезни ». IEEE Spectrum. 25 (5): 42–46. Дои:10.1109/6.4550.
  4. ^ Руководство по языку Mesa, глава 7. (The Руководство использует термин модуль означает исходный файл.)
  5. ^ Милый, Ричард; Sandman, Джеймс (март 1982), «Эмпирический анализ набора инструкций Mesa», ASPLOS I Труды Первого международного симпозиума по архитектурной поддержке языков программирования и операционных систем
  6. ^ Гешке, Чарльз; Моррис, Джеймс Х.; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Мезой». Коммуникации ACM. 20 (8): 540–552. Дои:10.1145/359763.359771.
  7. ^ Лэмпсон, Батлер В.; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Mesa». Коммуникации ACM. 23 (2): 105–117. CiteSeerX  10.1.1.142.5765. Дои: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. Дои:10.1145/800225.806844.
  10. ^ Вирт, Никлаус (2007). «Модула-2 и Оберон». Труды 3-й конференции по истории языков программирования. Сан-Диего: 3-1–3-10. CiteSeerX  10.1.1.91.1447. Дои:10.1145/1238844.1238847. ISBN  978-1-59593-766-7..
  11. ^ Гослинг, Джеймс; Радость, Билл; Стил, парень; Браха, Гилад. Спецификация языка Java (2-е изд.).

внешняя ссылка