Jump to content

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

Мэри
Парадигма императив
Семья АЛГОЛ
Разработчик РУНИТ
Впервые появился 1971 год ; 53 года назад ( 1971 )
Дисциплина набора текста статический , сильный
ТЫ Кроссплатформенность : Kongsberg Våpenfabrikk SM-4, Norsk Data Nord-10/ND-100, серия Univac-1100, ND-100 / Sintran -III, i386 , SPARC
Под влиянием
АЛГОЛ 68

Mary язык программирования , разработанный и реализованный RUNIT в Тронхейме , Норвегия , в 1970-х годах. Он заимствовал многие функции из АЛГОЛА 68 , но был разработан для системного программирования (машинно-ориентированного программирования).

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

Подобно C , по-видимому, существовало несколько особенностей языка, позволяющих создавать достаточно хорошо оптимизированный код, несмотря на довольно примитивный генератор кода в компиляторе. В их число входили операторы, аналогичные += et alter в C и явные регистров объявления для переменных .

Примечательные особенности:

  • Синтаксис потока данных – значения движутся слева направо, включая присвоение.
  • В выражениях можно использовать большинство конструкций: блоки, IF, CASE и т. д.
  • Текстовые рекурсивные макросы
  • Перегруженные пользовательские операторы, не ограниченные предопределенными идентификаторами, как в C++.
  • Автоматическое построение и разыменование указателей из контекста типа.
  • Типы скалярных диапазонов
  • Перечисление массивов и наборов в итераторах цикла
  • Дескрипторы динамических массивов (ROW)

Книга с описанием Марии была напечатана в 1974 году (четвертое и последнее издание - 1979 года): «Учебник Мэри» Рейдара Конради и Пера Холагера.

Компиляторы были созданы для Kongsberg Våpenfabrikk Nord-10/ND-100 компании мини-компьютеров SM-4 и Norsk Data . Оригинальный компилятор Мэри был написан на NU ALGOL , работал на серии Univac-1100 и использовался для начальной загрузки собственного компилятора для ND-100 / Sintran -III. RUNIT реализовал компилятор CHILL, написанный на Мэри, который работал на ND-100 и имел цели Intel 8086 и 80286 . Когда этот компилятор был портирован на платформу VAX , был реализован общий бэкэнд для Мэри и CHILL. Позже серверные части для i386 и SPARC стали доступны . Поскольку компилятор Мэри был реализован в Мэри, его можно было запускать на всех этих платформах.

Мэри больше не поддерживается.

Пример [ править ]

BEGIN
   INT i := 10;          %% Variable with initial value.
   REF INT ri := i;      %% Pointer initialized to point to i.
   INT j := 11;
   j :- REF INT =: ri;   %% Type conversion and assignment
                         %% ri now points to j.
   i =: (ri :- VAL REF INT);     
                         %% Assignment and type conversion
                         %% ri points to j so j is changed.
   IF j > 10             %% Conditional statement with result
   THEN                  %% used inside an arithmetic expression.
      1
   ELSE
      2
   FI + j =: j;
END

См. также [ править ]

Ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4f7f0f7fcd5d27edb0106f31efea2f99__1714149540
URL1:https://arc.ask3.ru/arc/aa/4f/99/4f7f0f7fcd5d27edb0106f31efea2f99.html
Заголовок, (Title) документа по адресу, URL1:
Mary (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)