HomeUser GuideImplementation NotesDownload Area
Intel Architecture IMP Compiler Project

Introduction

IMP is an "ALGOL-like" high-level language that was originally designed as the implementation language for the Edinburgh Multi-Access System, developed at Edinburgh University. It was widely used at Edinburgh University for implementing systems, teaching programming and as a general purpose programming language on many different machines.

Because IMP did not see significant commercial adoption (unlike its contemporary, C and later C++), it is not generally available on current platforms. For the Edinburgh Computing History Project, which aims to collect and publish significant software archives from Edinburgh University, this was a problem, because much of that software heritage is written in IMP. The solution - to produce an IMP compiler for current mainstream Intel x86 machines.

Objectives

The goal of this project is to produce a "production quality" IMP compiler for current Intel based machines which is compatible with existing tools on those machines. Target platforms are therefore:

  • 16 bit 8086 code with Microsoft/Intel OMF object files for MS-DOS.
  • 32 bit 80386 code with Microsoft COFF object files for Microsoft Windows.
  • 32 bit 80386 code with ELF object files for UNIX and Linux systems.

Current Status

The latest release for all three target platforms was verion 1.03 on 14th December 2003, and supports most major language features.