Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Edinburgh IMP
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Systems programming language used in the EMAS operating system}} {{Use dmy dates|date=April 2022}} {{Infobox programming language | name = Edinburgh IMP | logo = <!-- Filename only --> | logo caption = | screenshot = <!-- Filename only --> | screenshot caption = | paradigms = [[Procedural programming|Procedural]], [[Imperative programming|imperative]], [[Structured programming|structured]] | family = [[ALGOL]] | designers = Bratley, Whitfield, M. M. Barritt, David Rees, Peter D. Schofield, Roderick McLeod, [[Hamish Dewar]], Peter D. Stephens, Peter Robertson | developer = [[University of Edinburgh]] | released = {{Start date and age|1966}}<!-- If known, add |mm|dd|df=yes --> | latest release version = | latest release date = <!-- {{Start date and age|201y|mm|dd|df=yes}} --> | typing = [[Static type|Static]], [[Strong and weak typing|strong]] | scope = [[Scope (computer science)|Lexical]] | programming language = [[Atlas Autocode]], IMP | platform = [[English Electric KDF9]],<br />[[ICL System 4]], [[UNIVAC 1108]], [[IBM System/360]], DEC [[PDP-9]], DEC [[PDP-10]], DEC [[PDP-11]], DEC [[PDP-15]], CTL Modular One, [[x86]], Interdata [[7-16]], Interdata [[7-32]], Data General [[Nova (operating system)|Nova]] | operating system = [[BOS/360]], [[DOS]], [[Windows]], [[Linux]] | license = | file ext = | file format = <!-- or: | file formats = --> | website = <!-- {{URL|www.example.com}} --> | implementations = Edinburgh IMP | dialects = IMP77, IMP80 | influenced by = [[ALGOL 60]], [[Atlas Autocode]] | influenced = }} '''Edinburgh IMP''' is a development of [[Atlas Autocode]], initially developed around 1966-1969 at the [[University of Edinburgh]], [[Scotland]]. It is a [[general-purpose programming language]] which was used heavily for [[systems programming]]. Expressively, IMP is highly similar to [[ALGOL]] and includes all the ALGOL-style [[Block (programming)|block]] structure, [[reserved word]]s (keywords), and [[data type]]s such as [[Array data type|arrays]], and [[Record (computer science)|records]]. It adds to ALGOL-style languages a [[String (computer science)|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]]s offer compiler-generated [[Runtime (program lifecycle phase)|runtime]] checks and a [[stack trace]] (backtrace) facility by default, even in production code. IMP allows [[inline assembler]] [[machine language]] instructions in [[source code]]. The ERCC Implementation of IMP for the [[ICL System 4]] (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]]. Early IMP compilers were developed for the [[English Electric KDF9]], [[ICL System 4]], [[UNIVAC 1108]], [[IBM System/360]], DEC [[PDP-9]], DEC [[PDP-15]] and [[CTL Modular One]] computers. IMP was used to implement the [[Edinburgh Multiple Access System]] (EMAS) [[operating system]], and a compiler was written for the [[ICL 2900 series]] to allow porting of EMAS to that [[Computing platform|platform]]. In later years, a version of IMP named IMP77 was developed by Peter Robertson within the Computer Science department at Edinburgh which was a [[Software portability|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 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 (programming language)|IMP]] syntax-[[extensible programming]] language developed by [[Edgar T. Irons]], for the [[CDC 6600]], which was the main language used by the [[National Security Agency]] (NSA) for many years.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)