| • Science | • People | • Locations | • Timeline |
Expressively, IMP is extremely similar to Algol and includes all the Algol-style block structure, reserved keywords, and datatypes such as arrays and records. It adds to Algol-style languages a string type (akin to a flex array of char) and built-in operators for string manipulation and character handling.
IMP provides significant control over the storage mapping of data, plus commands for addressing within parts of words. Most Imp compilers offer compiler-generated run-time checks and a backtrace facility by default, even in production code. IMP allows the programmer to inline machine language instructions in the IMP source code.
Early IMP compilers were developed for the ICL System 4 , UNIVAC 1108, IBM 360, PDP-9 and PDP-15 computers. IMP was used to implement the EMAS operating system. In later years a version of Imp called Imp77 was developed by Peter Robertson within the Computer Science department at Edinburgh which was a portable compiler that brought Imp to even more platforms. In 2002 the Imp77 language was resurrected by the Edinburgh Computer History Project for the Intel platform and is once again in use by Edinburgh graduates and ex-pats.
The diverged Imp and Imp77 were later consolidated into a single language with the introduction of the Imp80 standard supported by implementations from the Edinburgh Regional Computer Center. Imp80 has also been ported to several platforms including Intel and was actively in use into the 1990's.
Edinburgh Imp is unrelated to the later IMP (programming language) extensible syntax programming language developed by Irons for the CDC 6600The CDC 6600 was a mainframe computer from Control Data Corporation, first manufactured in 1965. It is generally considered to be the first successful supercomputer, outperforming the fastest machines of the era by about ten times. It remained the world's, which was the main language used by the NSA for many years.