Атлас Автокод - Atlas Autocode
Эта статья нужны дополнительные цитаты для проверка.Сентябрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигмы | Процедурный, императив, структурированный |
---|---|
Семья | АЛГОЛ |
Разработано | Тони Брукер, Деррик Моррис |
Разработчик | Манчестерский университет |
Впервые появился | 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а
рассматривался как 3 * а
, и а (я + j)
рассматривался как а * (я + j)
если а
не было массивом. В неоднозначных случаях использовалось максимально длинное имя (максимальный перекус ), Например ab
не рассматривался как а * б
, так или иначе а
и б
был объявлен.
В исходном автокоде Атласа для компьютера Атлас инструкции машинного кода Атласа могли быть интерполированы между операторами АА.
Рекомендации
- ^ а б c d Brooker, R.A .; Рол, Дж. (1965). "Справочное руководство по автокоду Атлас". Департамент компьютерных наук Манчестерского университета. Архивировано из оригинал 21 июля 2011 г.. Получено 29 апреля 2020. (Оригинальные сканы )
- ^ а б Schofoeld, P.D .; Осборн, М.Р. (1965). «Программирование в Автокоде Атлас, Отчет ЭВМ №1» (PDF). Эдинбургский университет. (Оригинальные сканы В архиве 2011-07-21 на Wayback Machine )