Edinburgh IMP
   HOME

TheInfoList



OR:

Edinburgh IMP is a development of
Atlas Autocode Atlas Autocode (AA)Original scans)) is a programming language developed around 1965 at the University of Manchester. A variant of the language ALGOL, it was developed by Tony Brooker and Derrick Morris for the Atlas computer. The AA compiler was ...
, initially developed around 1966-1969 at the
University of Edinburgh The University of Edinburgh ( sco, University o Edinburgh, gd, Oilthigh Dhùn Èideann; abbreviated as ''Edin.'' in post-nominals) is a public research university based in Edinburgh, Scotland. Granted a royal charter by King James VI in 15 ...
,
Scotland Scotland (, ) is a country that is part of the United Kingdom. Covering the northern third of the island of Great Britain, mainland Scotland has a border with England to the southeast and is otherwise surrounded by the Atlantic Ocean to the ...
. It is a
general-purpose programming language In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language is used within a specific area. For exam ...
which was used heavily for
systems programming Systems programming, or system programming, is the activity of programming computer system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to pr ...
. Expressively, IMP is highly similar to
ALGOL ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the ...
and includes all the ALGOL-style
block Block or blocked may refer to: Arts, entertainment and media Broadcasting * Block programming, the result of a programming strategy in broadcasting * W242BX, a radio station licensed to Greenville, South Carolina, United States known as ''96.3 ...
structure,
reserved word In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is "reserved from use". This is a syntactic definition, and a re ...
s (keywords), and
data type In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
s such as
arrays An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
, and
records A record, recording or records may refer to: An item or collection of data Computing * Record (computer science), a data structure ** Record, or row (database), a set of fields in a database related to one entity ** Boot sector or boot record, ...
. It adds to ALGOL-style languages a string type (an array of characters, although these have a predeclared size) and built-in operators for string manipulation and character handling. One significant difference from ALGOL is that IMP does not support parameters passed by name, although it does support parameters passed by reference. IMP provides significant control over the storage mapping of data, plus commands for addressing within parts of words. Most IMP
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
s offer compiler-generated runtime checks and a stack trace (backtrace) facility by default, even in production code. IMP allows
inline assembler In computer programming, an inline assembler is a feature of some compilers that allows low-level code written in assembly language to be embedded within a program, among code that otherwise has been compiled from a higher-level language such as C ...
machine language In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
instructions in
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
. The ERCC Implementation of IMP for the
ICL System 4 4 (four) is a number, numeral and digit. It is the natural number following 3 and preceding 5. It is a square number, the smallest semiprime and composite number, and is considered unlucky in many East Asian cultures. In mathematics Four ...
(known as IMP9) offered a syntax-driven macro facility (designed by Alan Freeman) that was similar to the Compiler Compiler features offered by IMP's predecessor,
Atlas Autocode Atlas Autocode (AA)Original scans)) is a programming language developed around 1965 at the University of Manchester. A variant of the language ALGOL, it was developed by Tony Brooker and Derrick Morris for the Atlas computer. The AA compiler was ...
. Early IMP compilers were developed for the
English Electric KDF9 KDF9 was an early British 48-bit computer designed and built by English Electric (which in 1968 was merged into International Computers Limited (ICL)). The first machine came into service in 1964 and the last of 29 machines was decommissioned ...
,
ICL System 4 4 (four) is a number, numeral and digit. It is the natural number following 3 and preceding 5. It is a square number, the smallest semiprime and composite number, and is considered unlucky in many East Asian cultures. In mathematics Four ...
,
UNIVAC 1108 The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Serie ...
,
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applica ...
, DEC
PDP-9 The PDP-9, the fourth of the five 18-bit minicomputers produced by Digital Equipment Corporation, was introduced in 1966. A total of 445 PDP-9 systems were produced, of which 40 were the compact, low-cost PDP-9/L units.. History The 18-bit PDP ...
, DEC
PDP-15 The PDP-15 was the fifth and last of the 18-bit minicomputers produced by Digital Equipment Corporation. The PDP-1 was first delivered in December 1959 and the first PDP-15 was delivered in February 1970. More than 400 of these successors to t ...
and
CTL Modular One Computer Technology Limited (CTL) was a British computer company founded in 1965. In 1984 it merged into its holding company and was called Information Technology Limited (ITL). Founder Iann Barron had worked for Elliott Automation but left t ...
computers. IMP was used to implement the
Edinburgh Multiple Access System The Edinburgh Multi-Access System (EMAS) was a mainframe computer operating system at the University of Edinburgh. The system went online in 1971. EMAS was a powerful and efficient general purpose multi-user system which coped with many of t ...
(EMAS)
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
, and a compiler was written for the
ICL 2900 series The ICL 2900 Series was a range of mainframe computer, mainframe computer systems announced by the British manufacturer International Computers Limited, ICL on 9 October 1974. The company had started development under the name "New Range" immedi ...
to allow porting of EMAS to that
platform Platform may refer to: Technology * Computing platform, a framework on which applications may be run * Platform game, a genre of video games * Car platform, a set of components shared by several vehicle models * Weapons platform, a system or ...
. In later years, a version of IMP named IMP77 was developed by Peter Robertson within the Computer Science department at Edinburgh which was a
portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide ...
compiler that brought IMP to even more platforms. In 2002, the IMP77 language was resurrected by the Edinburgh Computer History Project for Intel
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
hardware running
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicat ...
,
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
, and is once again in use by Edinburgh graduates and ex-pats. The diverged IMP and IMP77 were later consolidated into one language with the introduction of the IMP80 standard, supported by implementations from the Edinburgh Regional Computer Centre. IMP80 has also been ported to several platforms including Intel and was actively in use into the 1990s. Edinburgh IMP is unrelated to the later
IMP IMP or imp may refer to: * Imp, a fantasy creature Arts and entertainment Fictional characters * Imp (She-Ra), a character in ''She-Ra: Princess of Power'' * Imp a character in '' Artemis Fowl: The Lost Colony'' * Imp, a character in the '' Cl ...
syntax-
extensible programming Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler and runtime environment. Extensible programming languages, supporting this ...
language developed by Edgar T. Irons, for the
CDC 6600 The CDC 6600 was the flagship of the 6000 series of mainframe computer systems manufactured by Control Data Corporation. Generally considered to be the first successful supercomputer, it outperformed the industry's prior recordholder, the IBM ...
, which was the main language used by the
National Security Agency The National Security Agency (NSA) is a national-level intelligence agency of the United States Department of Defense, under the authority of the Director of National Intelligence (DNI). The NSA is responsible for global monitoring, collecti ...
(NSA) for many years.


See also

*
IMP (programming language) 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. Eve ...
(contrast)


Sources

* * * * * *
ASCII version
* * * * * * * * * * * * * * * * * * * *


References

* {{ALGOL programming History of computing in the United Kingdom Science and technology in Edinburgh Systems programming languages University of Edinburgh School of Informatics