IMP (programming language)

IMP
ParadigmsMulti-paradigm: procedural, imperative, structured, extensible
FamilyALGOL
Designed byEdgar T. Irons
DeveloperNational Security Agency
First appeared1965 (1965)
Stable release
IMP72 / 1972 (1972)
Typing disciplineStatic, strong
ScopeLexical
Implementation languageALGOL 60
PlatformCDC 6600, Cray, PDP-10, PDP-11
OSCOS, SCOPE, TOPS-10, Unix, others
LicenseProprietary
Major implementations
IMP65, IMP70, IMP72
Influenced by
ALGOL 60

IMP is an early systems programming language that was developed by Edgar T. Irons in the late 1960s through early 1970s, at the National Security Agency (NSA). Unlike most other systems languages, IMP supports syntax-extensible programming.

Even though its designer refers to the language as "being based on ALGOL"[citation needed], IMP excludes many defining features of that language, while supporting a very non-ALGOL-like one: syntax extensibility.

A compiler for IMP existed as early as 1965 and was used to program the CDC 6600 time-sharing system, which was in use at the Institute for Defense Analyses since 1967. Although the compiler is slower than comparable ones for non-extensible languages, it has been used for practical production work.

IMP compilers were developed for the CDC 6600, Cray, PDP-10 and PDP-11 computers. Important IMP versions were IMP65, IMP70, and IMP72.


© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search