Edinburgh IMP

Edinburgh IMP

Edinburgh IMP is a development of ATLAS Autocode, initially developed around 1966-1969 at Edinburgh University, Scotland. IMP was a general-purpose programming language which was used heavily for systems programming.

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 Intel x86 hardware running DOS, Windows and Linux 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 1990s.

Edinburgh IMP is unrelated to the later IMP (programming language) developed by Irons for the CDC 6600, which was the main language used by the NSA for many years.

ee also

* IMP programming language (contrast)


* Barritt, M. M. "et al.", Edinburgh IMP Language Manual, University of Edinburgh, Edinburgh Regional Computing Center, July 1970.

External links

* Example [http://history.dcs.ed.ac.uk/archive/apps/quine/self.txt Early IMP Program] (actually the world's first known self-reproducing program)
* [http://imp.nb-info.co.uk/ Intel (Windows + Linux) IMP77 Compiler]
* [http://history.dcs.ed.ac.uk/archive/scans/ercc_imp_manual/imp001.html Edinburgh IMP Language Manual, Second edition (1974) (Scan)] by Roderick McLeod
* [http://imp.nb-info.co.uk/imp77.pdf The Imp77 Language (Rekeyed 2003)] ( [http://history.dcs.ed.ac.uk/archive/dec10/imp/3b35b.mem.html also in ASCII format] )
* [http://frink.ucg.ie/~bfoley/edhist/using77/using77.html Using Imp77]
* [http://history.dcs.ed.ac.uk/archive/docs/psrthesis/psrthesis.html The Production of Optimised Machine Code for High Level Languages using Machine-Independent Intermediate Codes]
* [http://www.gtoal.com/athome/edinburgh/imp77/gtoal/icode.html I-Code V1.3 Working Notes]
* A short description of some optimisation techniques used in the [http://www.gtoal.com/athome/edinburgh/imp/PDP11IMP.htm PDP11 Imp Compiler]
* [http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm10/imp11manual.html IMP11 User's Guide]
* [http://history.dcs.ed.ac.uk/archive/dec10/imp/3b35c.mem.html Imp on the DECsystem-10/20 Users Guide] and [http://history.dcs.ed.ac.uk/archive/dec10/imp/3b35c.mem.html library manual]
* [http://history.dcs.ed.ac.uk/archive/os/emas/emas2/compilers/imp80/doc/manual/imp80.html Edinburgh IMP80 Language Manual] by Felicity Stephens and John Murison
* [http://history.dcs.ed.ac.uk/archive/languages/atlas-autocode/imp9.imp.txt Source of first ever IMP compiler] for KDF9 by Bratley, Rees, Schofield and Whitfield, 1965
* Source of [http://history.dcs.ed.ac.uk/archive/languages/imp-pdp15/hdcomp-emul.i15.html IMP compiler for PDP9/PDP15] by Hamish Dewar
* [http://history.dcs.ed.ac.uk/archive/languages/imp-pdp15/windows_port/ Windows implementation of Imp15] . Generates stand-alone .EXE files.
* Notes on [http://history.dcs.ed.ac.uk/archive/languages/imp-pdp15/CompilerOutput.htm IMP9 Compiler Output] by Hamish Dewar
* [http://frink.ucg.ie/~bfoley/edhist/skimp_ii/skimp_ii.html Skimp MkII compiler] by David Rees - used in 3rd year compilers class at Edinburgh University
* Source of [http://history.dcs.ed.ac.uk/archive/languages/imp11-tmp/imp11/sk11v.imp IMP compiler for PDP11 bootstrapped via Skimp]
* [http://history.dcs.ed.ac.uk/archive/languages/imp/allimpc1.txt Source of first IMP compiler written entirely in IMP (1970)]
* [http://www.gtoal.com/athome/utils/imp/imp22g-orig.imp.html Source of IMP compiler for 68000 platform] by Hamish Dewar
* [http://history.dcs.ed.ac.uk/history/Imp77 Sources of Imp77 compilers for several platforms] by Peter Robertson
* [http://history.dcs.ed.ac.uk/archive/languages/imp80-tmp/imp/isrce-orig/rs6p422.i Source of Imp80 compiler for Intel] by Peter D Stephens
* [http://history.dcs.ed.ac.uk/archive/docs/Notes_on_IMP_Programming/ Notes on IMP Programming] by Peter D Schofield
* Extracts from [http://history.dcs.ed.ac.uk/history/ImpLanguageAndCompiler The IMP Language and Compiler] by Peter D Stephens
* [http://history.dcs.ed.ac.uk/history/Imp80 IMP80 - A Historical Introduction] by Peter D Stephens
* [http://history.dcs.ed.ac.uk/archive/docs/imp9toimp80.html Differences between ERCC IMP on ICL 4/75 and IMP80 on ICL2900] by John M. Murison

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • IMP programming language — IMP was a systems programming language developed by Ned Irons in the late 1960s through early 1970s. Unlike most other systems programming languages, IMP was an .Even though its designer refers to the language as being based on ALGOL , IMP… …   Wikipedia

  • Edinburgh Multiple Access System — The Edinburgh Multi Access System (EMAS) was a mainframe computer operating system developed at the University of Edinburgh, Scotland, during the 1970s. EMAS was developed because none of the manufacturers operating systems (nor independent… …   Wikipedia

  • IMP — NOTOC IMP or imp may mean: * Imp, a fantasy creature. * Imp (Dungeons Dragons), a type of fictional lower level devil in the Dungeons Dragons role playing game. * Imparja Television (callsign IMP), an Australian television broadcaster * Hillman… …   Wikipedia

  • Atlas Autocode — (AA) was a programming language developed around 1965 at Manchester University for the Atlas Computer. It was developed by Tony Brooker and Derrick Morris as an improvement on the ALGOL programming languages, removing some of Algol s poorer… …   Wikipedia

  • Coral 66 — Paradigm(s) procedural, imperative, structured Appeared in 1964; 47 years ago (1964) Designed by Royal Radar Establishment Influenced by ALGOL …   Wikipedia

  • ALGOL — This article is about the programming language family. For other uses, see Algol (disambiguation). ALGOL Paradigm(s) procedural, imperative, structured Appeared in 1958 Designed by Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis …   Wikipedia

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Liste des langages de programmation — Le but de cette Liste des langages de programmation est d inclure tous les langages de programmation existants, qu ils soient actuellement utilisés ou historiques, par ordre alphabétique. Ne sont pas listés ici les langages informatiques de… …   Wikipédia en Français

  • CORAL66 — Saltar a navegación, búsqueda CORAL (Computing Online Realtime Algorithmic Language) fue desarrollado en 1966 en el Royal Radar Establishment (RRE), Malvern, UK por I. F. Currie and M. Griffiths. CORAL 66 es un lenguaje de programación basado en… …   Wikipedia Español

  • Список языков программирования — Списки языков программирования Алфавитный По категориям Хронологический Генеалогический Цель этого алфавитного списка языков программирования состоит в том, чтобы дать полный перечень всех существующих языков программирования, как используемых в… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”