Jump to content

Атлас Автокод

Атлас Автокод
Парадигмы Процедурный , императивный , структурированный.
Семья АЛГОЛ
Разработано Тони Брукер , Деррик Моррис
Разработчик Манчестерский университет
Впервые появился 1963 год ; 61 год назад ( 1963 )
Дисциплина набора текста Статический , сильный
Объем Лексический
Язык реализации АЛГОЛ 60
Платформа Атлас
Английский электрический KDF9
ТЫ супервайзер
Основные реализации
Эдинбургский ИМП
Под влиянием
АЛГОЛ 60

Атлас Автокод ( AA ) [1] [2] язык программирования , разработанный примерно в 1963 году в Манчестерском университете . Вариант языка АЛГОЛ , разработанный Тони Брукером и Дерриком Моррисом для компьютера Atlas . Первоначальные компиляторы AA и AB были написаны Джеффом Ролом и Тони Брукером с использованием компилятора Brooker-Morris Compiler , с более поздней реализацией без CC, написанной вручную Джеффом Ролом. [3]

Слово «автокод» было, по сути, ранним термином для обозначения языка программирования . Различные автокоды могут сильно различаться.

Особенности [ править ]

AA был языком с блочной структурой , в котором были явно типизированные переменные , подпрограммы и функции. В нем опущены некоторые функции АЛГОЛа, такие как передача параметров по имени , что в АЛГОЛ 60 означает передачу адреса памяти короткой подпрограммы ( thunk ) для пересчета параметра каждый раз, когда он упоминается.

AA Компилятор мог генерировать проверку диапазона для доступа к массиву и позволял массиву иметь размеры, которые были определены во время выполнения , т. е. массив мог быть объявлен как integer array Thing (i:j), где i и j были расчетные значения.

Подпрограммы высокого уровня AA могут включать машинный код либо для того, чтобы сделать внутренний цикл более эффективным, либо для выполнения какой-либо операции, которую в противном случае невозможно было бы легко выполнить. [1]

АА включало complex тип данных [1] для представления комплексных чисел , отчасти из-за давления со стороны отдела электротехники , поскольку комплексные числа используются для представления поведения переменного тока . Мнимый квадратный корень из -1 был представлен выражением i, который рассматривался как фиксированная комплексная константа = i .

The complex Тип данных был исключен, когда Atlas Autocode позже превратился в язык Edinburgh IMP . IMP был расширением AA и использовался для написания Edinburgh Multiple Access System (EMAS) операционной системы .

Вторым по величине заявлением AA о славе (после того, как он был прародителем IMP и EMAS) было то, что он обладал многими функциями оригинального компилятора Compiler . Вариант компилятора AA включал поддержку во время выполнения анализатора рекурсивного спуска сверху вниз . Стиль парсера , использованный в компиляторе Compiler, постоянно использовался в Эдинбурге с 60-х годов почти до 2000 года.

Другие автокоды были разработаны для компьютера Titan , прототипа Atlas 2 в Кембридже и Ferranti Mercury.

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

Atlas Autocode Синтаксис во многом был похож на ALGOL, хотя на него повлияло имеющееся у автора устройство вывода — Friden Flexowriter . Таким образом, это позволило использовать такие символы, как ½ для .5 и верхний индекс 2 ибо в степени 2 . Flexowriter поддерживал перечеркивание, и, следовательно, AA тоже это делало: до трех символов можно было перечеркнуть как один символ. Например, набор символов не имел символ, поэтому возведение в степень было перечеркиванием | и *. Вышеупомянутое подчеркивание зарезервированных слов (ключевых слов) также можно выполнить с помощью перечеркивания. Язык подробно описан в Справочном руководстве по автокоду Atlas. [1]

Другими символами Flexowriter, которые нашли применение в AA, были: α в числах с плавающей запятой, например , 3.56α-7 для современного 3.56e-7 ; β означает вторую половину 48-битного памяти Atlas слова ; π для математической константы пи .

Когда AA был портирован на компьютер English Electric KDF9 , набор символов был изменен на Международная организация по стандартизации (ISO). Этот компилятор был восстановлен со старой бумажной ленты Эдинбургским проектом компьютерной истории и доступен в Интернете, как и высококачественная отсканированная версия оригинальной эдинбургской версии руководства Atlas Autocode. [2]

Ключевые слова в AA отличались от другого текста тем, что были подчеркнуты, что было реализовано посредством перечеркивания во Flexowriter (сравните с жирным шрифтом в ALGOL). Существовали также два режима строппинга . Во-первых, существовал режим «разделителей в верхнем регистре», в котором все прописные буквы (внешние строки) рассматривались как подчеркнутые строчные. Во-вторых, в некоторых версиях (но не в исходной версии Атласа) можно было ограничить ключевые слова, поместив « %" подпишите перед ними, например ключевое слово endofprogramme может быть напечатано как %end %of %programme или %endofprogramme. Это значительно сократило набор текста, поскольку требовался только один символ, а не зачеркивание всего ключевого слова. Как и в АЛГОЛе, в языке не было зарезервированных слов , поскольку ключевые слова идентифицировались путем подчеркивания (или удаления), а не путем распознавания последовательностей зарезервированных символов. В заявлении if token=if then result = token, есть оба ключевых слова if и переменная с именем if.

Как и в АЛГОЛе, AA допускал пробелы в именах переменных, например integer previous value. Пробелы не имели значения и удалялись перед синтаксическим анализом на тривиальном этапе предварительного лексического анализа, называемом « реконструкцией строки ». В приведенном выше примере компилятор увидит следующее: « iftoken=ifthenresult=tokenПробелы были возможны отчасти из-за того, что ключевые слова различались другими способами, а отчасти потому, что источник обрабатывался методом бессканерного анализа , без отдельной фазы лексического анализа, что позволяло лексическому синтаксису быть контекстно-зависимым.

Синтаксис выражений позволяет опускать оператор умножения, например: 3a рассматривался как 3*a, и a(i+j) рассматривался как a*(i+j) если a не был массивом. В неоднозначных случаях бралось максимально длинное имя ( maximum munch ), например ab не рассматривалась как a*b, независимо от того, или нет a и b было объявлено.

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

  1. ^ Перейти обратно: а б с д Брукер, РА; Рол, Дж. С. (1965). «Справочное руководство по автокоду Atlas» (PDF) . Факультет компьютерных наук Манчестерского университета. ( Оригинальные сканы заархивированы 16 января 2019 г. на Wayback Machine )
  2. ^ Перейти обратно: а б Шофилд, PD; Осборн, MR (1965). «Программирование в Atlas Autocode, Отчет компьютерного блока № 1» (PDF) . Эдинбургский университет. Архивировано из оригинала (PDF) 15 мая 2020 г. Проверено 12 апреля 2006 г. ( Оригинальные сканы заархивированы 21 июля 2011 г. в Wayback Machine )
  3. ^ «Тони Брукер и компилятор Atlas Compiler» (PDF) . Февраль 2014 года . Проверено 16 февраля 2024 г.

Внешние ссылки [ править ]

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