Парадигмы | Процедурный , императивный , структурированный |
---|---|
Семья | АЛГОЛ |
Разработано | Брэтли, Уитфилд, М. М. Барритт, Дэвид Риз, Питер Д. Шофилд, Родерик Маклеод, Хамиш Дьюар, Питер Д. Стивенс, Питер Робертсон |
Разработчик | Эдинбургский университет |
Впервые появился | 1966 ( 1966 ) |
Дисциплина набора текста | Статичный , сильный |
Объем | Лексический |
Язык реализации | Автокод Атласа , IMP |
Платформа | English Electric 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, Data General Nova |
ОС | БОС/360 , ДОС , Windows , Linux |
Основные внедрения | |
Эдинбургский IMP | |
Диалекты | |
ИМП77, ИМП80 | |
Под влиянием | |
АЛГОЛ 60 , Атлас Автокод |
Edinburgh IMP — это развитие Atlas Autocode , изначально разработанного в 1966-1969 годах в Эдинбургском университете , Шотландия . Это язык программирования общего назначения , который широко использовался для системного программирования .
Выразительно, IMP очень похож на ALGOL и включает в себя всю блочную структуру 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 , который на протяжении многих лет был основным языком, используемым Агентством национальной безопасности (АНБ).