Разработано | Лаборатория компьютерных систем (CSL) |
---|---|
Разработчик | Xerox PARC |
Впервые появился | 1976 [2] |
Стабильный выпуск | Mesa 6.0 (версия 41) / июль 1981 г . |
Печатная дисциплина | Сильный, статичный |
Под влиянием | |
АЛГОЛ | |
Под влиянием | |
Java , Модула-2 , Кедр , PostScript [3] |
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 были сборка мусора , динамические типы , улучшенная поддержка строк с помощью веревок , ограниченная форма параметризации типов и специальный синтаксис для идентификации типобезопасных частей многомодульных программных пакетов для обеспечения детерминированного выполнения. и предотвратить утечку памяти .