Jump to content

Меса (язык программирования)

(Перенаправлено с Месы/Кедра )

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

Меса [ 1 ] язык программирования, разработанный в середине 1970-х годов в исследовательском центре Xerox Palo Alto в Пало-Альто, Калифорния , США . Название языка было каламбуром, основанным на крылатых фразах языка программирования того времени, поскольку 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), филиале исследовательского центра Xerox в Пало-Альто, для Alto , экспериментальной рабочей станции с микрокодированием. Первоначально его распространение ограничивалось PARC и несколькими университетами, которым Xerox передала в дар несколько Altos.

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

Вторичная среда разработки, называемая средой разработки Xerox (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 , где использовали свой опыт работы с Mesa при разработке Modula-2+ , а затем и Modula-3 .

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

[ редактировать ]

Семантика

[ редактировать ]

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

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

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

Синтаксис

[ редактировать ]

Mesa имеет «императивный» и «алгебраический» синтаксис , основанный на ALGOL и Pascal , а не на BCPL или C ; например, составные команды обозначаются значком НАЧАТЬ и Ключевые слова END, а не фигурные скобки . В Mesa все ключевые слова пишутся заглавными буквами. [ 1 ]

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

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

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 для C , а полученный код скомпилирован для целевой платформы. Это было работоспособное решение, но оно делало практически невозможным разработку на машинах Unix, поскольку при использовании этого подхода терялась мощь компилятора Mesa и связанной с ним цепочки инструментов. Рабочие станции Sun SPARC имели некоторый коммерческий успех в издательском мире, но такой подход привел к изоляции продукта и сужению рыночных возможностей.
  • В 1976 году, во время творческого отпуска в Xerox PARC, Никлаус Вирт познакомился с Mesa, которая оказала большое влияние на разработку его языка Modula-2 . [ 10 ]
  • Java явно называет Mesa предшественником. [ 11 ]

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Митчелл, Джеймс Г .; Мэйбери, Уильям; Свит, Ричард (1979): Руководство по языку Mesa - версия 5.0 " XEROX PARC, Лаборатория компьютерных систем (CSL), Технический отчет CSL-79-3. Интернет-копия на сайте www.bitsavers.org, по состоянию на 15 мая 2019 г.
  2. ^ Mesa , Группа сохранения программного обеспечения
  3. ^ Перри, Т.С. (май 1988 г.). « Постскриптум печатает что угодно: история болезни». IEEE-спектр . 25 (5): 42–46. дои : 10.1109/6.4550 . S2CID   33376390 .
  4. ^ Руководство по языку Mesa , глава 7. ( В Руководстве термин «модуль» используется для обозначения исходного файла.)
  5. ^ Мило, Ричард; Сэндман, Джеймс (март 1982 г.), «Эмпирический анализ набора команд mesa», Труды первого международного симпозиума по архитектурной поддержке языков программирования и операционных систем - ASPLOS-I , стр. 158–166, doi : 10.1145/800050.801839 , ISBN  0897910664 , S2CID   1353842
  6. ^ Гешке, Чарльз ; Моррис, Джеймс Х .; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Mesa» . Коммуникации АКМ . 20 (8): 540–552. дои : 10.1145/359763.359771 . S2CID   15737342 .
  7. ^ Лэмпсон, Батлер В .; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Mesa» . Коммуникации АКМ . 23 (2): 105–117. CiteSeerX   10.1.1.142.5765 . дои : 10.1145/358818.358824 . S2CID   1594544 .
  8. ^ Лэмпсон, Батлер В. Описание кедрового языка . Технический отчет Xerox PARC.
  9. ^ Суайнхарт, Дэниел К.; Зеллвегер, Полле Т.; Хагманн, Роберт Б. (июль 1985 г.). «Строение кедра». Уведомления SIGPLAN . 20 (7): 230–244. CiteSeerX   10.1.1.110.9565 . дои : 10.1145/800225.806844 . S2CID   2788992 .
  10. ^ Вирт, Никлаус (2007). «Модула-2 и Оберон» . Материалы третьей конференции ACM SIGPLAN по истории языков программирования . Сан-Диего. стр. 3-1–3-10. CiteSeerX   10.1.1.91.1447 . дои : 10.1145/1238844.1238847 . ISBN  978-1-59593-766-7 . S2CID   1918928 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка ) .
  11. ^ Гослинг, Джеймс ; Джой, Билл ; Стил, Гай ; Браха, Гилад . Спецификация языка Java (2-е изд.).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 40b99c0be1b9c4b45704d007ed986b47__1696046400
URL1:https://arc.ask3.ru/arc/aa/40/47/40b99c0be1b9c4b45704d007ed986b47.html
Заголовок, (Title) документа по адресу, URL1:
Mesa (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)