Edinburgh IMP es un desarrollo de Atlas Autocode , desarrollado inicialmente entre 1966 y 1969 en la Universidad de Edimburgo , Escocia . Es un lenguaje de programación de propósito general que se utilizó mucho para la programación de sistemas .
Expresivamente, IMP es muy similar a ALGOL e incluye toda la estructura de bloques de estilo ALGOL , palabras reservadas (palabras clave) y tipos de datos como matrices y registros . Agrega a los lenguajes de estilo ALGOL un tipo de cadena (una matriz de caracteres, aunque estos tienen un tamaño predeclarado) y operadores integrados para la manipulación de cadenas y el manejo de caracteres. Una diferencia significativa con ALGOL es que IMP no admite parámetros pasados por nombre, aunque sí admite parámetros pasados por referencia.
IMP proporciona un control significativo sobre el mapeo de almacenamiento de datos, además de comandos para direccionamiento dentro de partes de palabras. La mayoría de los compiladores IMP ofrecen verificaciones de tiempo de ejecución generadas por el compilador y una función de seguimiento de pila (backtrace) de forma predeterminada, incluso en código de producción. IMP permite instrucciones de lenguaje de máquina ensamblador en línea en el código fuente .
La implementación de ERCC de IMP para el Sistema ICL 4 (conocido como IMP9) ofrecía una función de macro basada en sintaxis (diseñada por Alan Freeman) que era similar a las características del compilador ofrecidas por el predecesor de IMP, Atlas Autocode .
Los primeros compiladores IMP se desarrollaron para los ordenadores English Electric KDF9 , ICL System 4 , UNIVAC 1108 , IBM System/360 , DEC PDP-9 , DEC PDP-15 y CTL Modular One . IMP se utilizó para implementar el sistema operativo Edinburgh Multiple Access System (EMAS) , y se escribió un compilador para la serie ICL 2900 para permitir la migración de EMAS a esa plataforma . En años posteriores, Peter Robertson desarrolló una versión de IMP llamada IMP77 dentro del departamento de Ciencias de la Computación de Edimburgo, que era un compilador portátil que llevó IMP a aún más plataformas. En 2002, el lenguaje IMP77 fue resucitado por el Edinburgh Computer History Project para hardware Intel x86 que ejecuta DOS , Windows y Linux , y una vez más está en uso por graduados y expatriados de Edimburgo.
Los lenguajes IMP e IMP77 se fusionaron posteriormente en un solo lenguaje con la introducción del estándar IMP80, respaldado por implementaciones del Centro Informático Regional de Edimburgo. IMP80 también se adaptó a varias plataformas, incluida Intel, y se utilizó activamente hasta la década de 1990.
Edinburgh IMP no está relacionado con el lenguaje de programación extensible de sintaxis IMP desarrollado posteriormente por Edgar T. Irons para el CDC 6600 , que fue el lenguaje principal utilizado por la Agencia de Seguridad Nacional (NSA) durante muchos años.
Véase también
- IMP (lenguaje de programación) (contraste)
Fuentes
- "Programa IMP temprano (el primer programa autorreproductor conocido del mundo)".
- «Compilador IMP77: Intel (Windows, Linux)». Archivado desde el original el 7 de abril de 2005. Consultado el 5 de mayo de 2020 .
- Freeman, Alan. "El manual del lenguaje de macros IMP" (PDF) .
- Freeman, Alan. "Un ejemplo de uso de macros IMP".
- McLeod, Roderick (1974). "Manual de lenguaje IMP de Edimburgo, segunda edición, escaneado".
- Robertson, Peter S. (diciembre de 1977). "El lenguaje IMP77: un manual de referencia (rediseñado en 2003)" (PDF) . Proyecto de Historia de la Computación de Edimburgo . Universidad de Edimburgo. Archivado desde el original (PDF) el 29 de mayo de 2005.(Versión ASCII)
- "Usando Imp77".
- "La producción de código máquina optimizado para lenguajes de alto nivel utilizando códigos intermedios independientes de la máquina".
- "Notas de trabajo de I-Code V1.3". Archivado desde el original el 16 de diciembre de 2004.
- "Guía del usuario del IMP11".
- Farvis, Keith M. (junio de 1978). "IMP en el DECsystem-10/20: Guía del usuario (manual de la biblioteca)".
- Stephens, Felicity; Murison, John. "Manual del lenguaje IMP80 de Edimburgo".
- Bratley; Rees; Schofield; Whitfield (1965). "Fuente del primer compilador IMP de la historia; para English Electric KDF9".
- Dewar, Hamish. "Compilador IMP para PDP9/PDP15 (código fuente)".
- "Puerto de Windows de IMP15 (genera archivos .exe independientes)".
- Dewar, Hamish Notas sobre. "Salida del compilador IMP9".
- Rees, David. "Compilador Skimp MkII (usado en la clase de compiladores de tercer año en la Universidad de Edimburgo)".
- "Compilador IMP para PDP11 arrancado a través de Skimp (código fuente)".
- "Fuente del primer compilador IMP escrito enteramente en IMP". 1970.
- Dewar, Hamish. "Fuente del compilador IMP para la plataforma 68000". Archivado desde el original el 27 de noviembre de 2003.
- Robertson, Peter. "Fuentes de compiladores Imp77 para varias plataformas".
- Stephens, Peter D. "Fuente del compilador Imp80 para Intel".
- Schofield, Peter D. "Notas sobre programación IMP".
- Stephens, Peter D. "El lenguaje IMP y su compilador (extractos)". Archivado desde el original el 24 de septiembre de 2006.
- Stephens, Peter D. "IMP80: Una introducción histórica". Archivado desde el original el 7 de diciembre de 2004.
- Murison, John M. "Diferencias entre ERCC IMP en ICL 4/75 e IMP80 en ICL2900".
Referencias
- McLeod, Roderick; Barritt, Marjorie M. (julio de 1970). "Edinburgh IMP Language Manual, Second edition" (PDF) . Universidad de Edimburgo, Centro Regional de Informática de Edimburgo (publicado en 1974).