Меса (язык программирования)
Разработано | Лаборатория компьютерных систем (CSL) |
---|---|
Разработчик | Ксерокс ПАРК |
Впервые появился | 1976 год [ 2 ] |
Стабильная версия | Меса 6.0 (Версия 41)
/ июль 1981 г |
Дисциплина набора текста | Сильный, статичный |
Под влиянием | |
АЛГОЛ | |
Под влиянием | |
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 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с Митчелл, Джеймс Г .; Мэйбери, Уильям; Свит, Ричард (1979): Руководство по языку Mesa - версия 5.0 " XEROX PARC, Лаборатория компьютерных систем (CSL), Технический отчет CSL-79-3. Интернет-копия на сайте www.bitsavers.org, по состоянию на 15 мая 2019 г.
- ^ Mesa , Группа сохранения программного обеспечения
- ^ Перри, Т.С. (май 1988 г.). « Постскриптум печатает что угодно: история болезни». IEEE-спектр . 25 (5): 42–46. дои : 10.1109/6.4550 . S2CID 33376390 .
- ^ Руководство по языку Mesa , глава 7. ( В Руководстве термин «модуль» используется для обозначения исходного файла.)
- ^ Мило, Ричард; Сэндман, Джеймс (март 1982 г.), «Эмпирический анализ набора команд mesa», Труды первого международного симпозиума по архитектурной поддержке языков программирования и операционных систем - ASPLOS-I , стр. 158–166, doi : 10.1145/800050.801839 , ISBN 0897910664 , S2CID 1353842
- ^ Гешке, Чарльз ; Моррис, Джеймс Х .; Саттертуэйт, Эдвин Х. (август 1977 г.). «Ранний опыт работы с Mesa» . Коммуникации АКМ . 20 (8): 540–552. дои : 10.1145/359763.359771 . S2CID 15737342 .
- ^ Лэмпсон, Батлер В .; Ределл, Дэвид Д. (февраль 1980 г.). «Опыт работы с процессами и мониторами в Mesa» . Коммуникации АКМ . 23 (2): 105–117. CiteSeerX 10.1.1.142.5765 . дои : 10.1145/358818.358824 . S2CID 1594544 .
- ^ Лэмпсон, Батлер В. Описание кедрового языка . Технический отчет Xerox PARC.
- ^ Суайнхарт, Дэниел К.; Зеллвегер, Полле Т.; Хагманн, Роберт Б. (июль 1985 г.). «Строение кедра». Уведомления SIGPLAN . 20 (7): 230–244. CiteSeerX 10.1.1.110.9565 . дои : 10.1145/800225.806844 . S2CID 2788992 .
- ^ Вирт, Никлаус (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: отсутствует местоположение издателя ( ссылка ) . - ^ Гослинг, Джеймс ; Джой, Билл ; Стил, Гай ; Браха, Гилад . Спецификация языка Java (2-е изд.).
Внешние ссылки
[ редактировать ]- Руководство по языку программирования Mesa, версия 5 (1979 г.) на bitsavers.org
- Другие документы Mesa на bitsavers.org
- Отладчики World-Stop. Архивировано 26 августа 2016 г. в Wayback Machine , Дон Гиллис, сотрудник Xerox SDD/ISD, 1984–86.
- Тейтельман, Уоррен (апрель 1984 г.). «Путешествие по кедру». Программное обеспечение IEEE . 1 (2): 44–73. CiteSeerX 10.1.1.105.3163 . дои : 10.1109/ms.1984.234050 .