Эдинбургский ИМП
Парадигмы | Процедурный , императивный , структурированный. |
---|---|
Семья | АЛГОЛ |
Разработано | Брэтли, Уитфилд, М.М. Барритт, Дэвид Рис, Питер Д. Шофилд, Родерик МакЛеод, Хэмиш Дьюар, Питер Д. Стивенс, Питер Робертсон |
Разработчик | Эдинбургский университет |
Впервые появился | 1966 год |
Дисциплина набора текста | Статический , сильный |
Объем | Лексический |
Язык реализации | Атлас автокодирования , IMP |
Платформа | Английский электрический KDF9 , ICL System 4 , UNIVAC 1108 , IBM System/360 , DEC PDP-9 , DEC PDP-10 , DEC PDP-11 , DEC PDP-15 , CTL Modular One, x86 , Interdata 7-16 , Interdata 7-32 , Общие данные Новая звезда |
ТЫ | БОС/360 , ДОС , Windows , Linux |
Основные реализации | |
Эдинбургский ИМП | |
Диалекты | |
ИМП77, ИМП80 | |
Под влиянием | |
АЛГОЛ 60 , Автокод Атласа |
Edinburgh IMP является развитием Atlas Autocode , первоначально разработанного примерно в 1966-1969 годах в Эдинбургском университете , Шотландия . Это язык программирования общего назначения , который широко использовался для системного программирования .
По своей выразительности IMP очень похож на ALGOL структуру в стиле ALGOL и включает в себя всю блочную , зарезервированные слова (ключевые слова) и типы данных , такие как массивы и записи . Он добавляет в языки типа АЛГОЛ строковый тип (массив символов, хотя они имеют заранее объявленный размер) и встроенные операторы для манипулирования строками и обработки символов. Одним из существенных отличий от ALGOL является то, что IMP не поддерживает параметры, передаваемые по имени, хотя и поддерживает параметры, передаваемые по ссылке.
IMP обеспечивает значительный контроль над отображением данных в хранилище, а также команды для адресации внутри частей слов. IMP Большинство компиляторов предлагают генерируемые компилятором проверки во время выполнения и возможность трассировки стека по умолчанию (обратной трассировки), даже в рабочем коде. IMP допускает ассемблера встроенные инструкции машинного языка в исходный код .
Реализация IMP ERCC для ICL System 4 (известная как IMP9) предлагала управляемую синтаксисом макросную функцию (разработанную Аланом Фрименом), которая была аналогична функциям компилятора, предлагаемым предшественником IMP, Atlas Autocode .
Ранние компиляторы IMP были разработаны для компьютеров English Electric KDF9 , ICL System 4 , UNIVAC 1108 , IBM System/360 , DEC PDP-9 , DEC PDP-15 и CTL Modular One . IMP использовался для реализации Edinburgh Multiple Access System (EMAS) операционной системы был написан компилятор , а для серии ICL 2900 , позволяющий портировать EMAS на эту платформу . В последующие годы Питером Робертсоном на факультете компьютерных наук в Эдинбурге была разработана версия IMP под названием IMP77, которая представляла собой портативный компилятор, который позволил использовать IMP на еще большем количестве платформ. В 2002 году язык IMP77 был возрожден Эдинбургским проектом истории компьютеров для Intel x86 оборудования под управлением DOS , Windows и Linux , и снова используется выпускниками Эдинбурга и эмигрантами.
Разошедшиеся IMP и IMP77 позже были объединены в один язык с введением стандарта IMP80, поддерживаемого реализациями Эдинбургского регионального компьютерного центра. IMP80 также был портирован на несколько платформ, включая Intel, и активно использовался до 1990-х годов.
Edinburgh IMP не имеет отношения к более позднему IMP синтаксически расширяемому языку программирования , разработанному Эдгаром Т. Айронсом для CDC 6600 , который был основным языком, используемым Агентством национальной безопасности (АНБ) в течение многих лет.
См. также [ править ]
- IMP (язык программирования) (контраст)
Источники [ править ]
- «Ранняя программа IMP (первая в мире известная самовоспроизводящаяся программа)» .
- «Компилятор IMP77: Intel (Windows, Linux)» . Архивировано из оригинала 7 апреля 2005 года . Проверено 5 мая 2020 г.
- Фриман, Алан. «Руководство по языку макросов IMP» (PDF) .
- Фриман, Алан. «Пример использования макроса IMP» .
- Маклеод, Родерик (1974). «Эдинбургское языковое руководство IMP, второе издание, скан» .
- Робертсон, Питер С. (декабрь 1977 г.). «Язык IMP77: Справочное руководство (измененный ключ в 2003 г.)» (PDF) . Эдинбургский проект истории компьютеров . Эдинбургский университет. Архивировано из оригинала (PDF) 29 мая 2005 г. ( версия ASCII ).
- «Использование Imp77» .
- «Создание оптимизированного машинного кода для языков высокого уровня с использованием машинно-независимых промежуточных кодов» .
- «Рабочие заметки I-Code V1.3» . Архивировано из оригинала 16 декабря 2004 года.
- «Руководство пользователя IMP11» .
- Фарвис, Кейт М. (июнь 1978 г.). «IMP в DECsystem-10/20: Руководство пользователя (Библиотечное руководство)» .
- Стивенс, Фелисити; Мьюрисон, Джон. «Эдинбургское языковое руководство IMP80» .
- Братли; Рис; Шофилд; Уитфилд (1965). «Источник первого компилятора IMP; для English Electric KDF9» .
- Дьюар, Хэмиш. «Компилятор IMP для PDP9/PDP15 (исходный код)» .
- «Порт IMP15 для Windows (создает автономные файлы .exe)» .
- Дьюар, Заметки Хэмиша. «Вывод компилятора IMP9» .
- Рис, Дэвид. «Компилятор Skimp MkII (используется на 3-м курсе компиляторов Эдинбургского университета)» .
- «Компилятор IMP для PDP11, загруженный через Skimp (исходный код)» .
- «Исходный код первого компилятора IMP, полностью написанного на IMP» . 1970.
- Дьюар, Хэмиш. «Исходный код компилятора IMP для платформы 68000» . Архивировано из оригинала 27 ноября 2003 года.
- Робертсон, Питер. «Исходники компиляторов Imp77 для нескольких платформ» .
- Стивенс, Питер Д. «Источник компилятора Imp80 для Intel» .
- Шофилд, Питер Д. «Заметки о программировании IMP» .
- Стивенс, Питер Д. «Язык и компилятор IMP (выдержки)» . Архивировано из оригинала 24 сентября 2006 года.
- Стивенс, Питер Д. «IMP80: историческое введение» . Архивировано из оригинала 7 декабря 2004 года.
- Мьюрисон, Джон М. «Различия между ERCC IMP на ICL 4/75 и IMP80 на ICL2900» .
Ссылки [ править ]
- Маклеод, Родерик; Барритт, Марджори М. (июль 1970 г.). «Эдинбургское языковое руководство IMP, второе издание» (PDF) . Эдинбургский университет, Эдинбургский региональный вычислительный центр (опубликовано в 1974 г.).