Атлас Автокод - Atlas Autocode

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

Атлас Автокод (AA)[1][2] это язык программирования разработан примерно в 1965 г. Манчестерский университет. Вариант языка АЛГОЛ, он был разработан Тони Брукер и Деррик Моррис за Атлас компьютер.

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

Функции

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

АА компилятор сгенерированная проверка диапазона для множество доступа, и позволял массиву иметь размеры, которые были определены в время выполнения, т.е. массив может быть объявлен как целое число множество Вещь (i: j), куда я и j были рассчитаны значения.

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

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

В сложный тип данных был удален, когда Atlas Autocode позже превратился в язык Эдинбург IMP. IMP был расширением AA и использовался для написания Эдинбургская система множественного доступа (EMAS) Операционная система.

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

Другой Автокоды были разработаны для Компьютер Титан, прототип Atlas 2 в Кембридже, и Ферранти Меркурий.

Синтаксис

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

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

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

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

Как и в ALGOL, в AA разрешены пробелы в именах переменных, например целое число предыдущее значение. Пробелы не были значительными и были удалены перед синтаксическим анализом на тривиальной стадии предварительной лексики, называемой "реконструкция линии ". То, что компилятор увидит в приведенном выше примере, будет"еслитокен = еслитогда результат= токен". Пробелы были возможны частично из-за того, что ключевые слова выделялись другим способом, а частично из-за того, что источник был обработан разбор без сканирования, без отдельной фазы лексирования, что позволило лексическому синтаксису быть контекстно-зависимым.

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

В исходном автокоде Атласа для компьютера Атлас инструкции машинного кода Атласа могли быть интерполированы между операторами АА.

Рекомендации

  1. ^ а б c d Brooker, R.A .; Рол, Дж. (1965). "Справочное руководство по автокоду Атлас". Департамент компьютерных наук Манчестерского университета. Архивировано из оригинал 21 июля 2011 г.. Получено 29 апреля 2020. (Оригинальные сканы )
  2. ^ а б Schofoeld, P.D .; Осборн, М.Р. (1965). «Программирование в Автокоде Атлас, Отчет ЭВМ №1» (PDF). Эдинбургский университет. (Оригинальные сканы В архиве 2011-07-21 на Wayback Machine )