Paradigms | Multi-paradigm: procedural, imperative, structured, extensible |
---|---|
Family | ALGOL |
Designed by | Edgar T. Irons |
Developer | National Security Agency |
First appeared | 1965 |
Stable release | IMP72
/ 1972 |
Typing discipline | Static, strong |
Scope | Lexical |
Implementation language | ALGOL 60 |
Platform | CDC 6600, Cray, PDP-10, PDP-11 |
OS | COS, SCOPE, TOPS-10, Unix, others |
License | Proprietary |
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.