Edimburgo IMP - Edinburgh IMP
Paradigmas | Processual , imperativo , estruturado |
---|---|
Família | ALGOL |
Projetado por | Bratley, Whitfield, MM Barritt, David Rees, Peter D. Schofield, Roderick McLeod, Hamish Dewar, Peter D. Stephens, Peter Robertson |
Desenvolvedor | Universidade de Edimburgo |
Apareceu pela primeira vez | 1966 |
Disciplina de digitação | Estático , forte |
Escopo | Lexical |
Linguagem de implementação | Atlas Autocode , IMP |
Plataforma |
Inglês elétrico KDF9 , ICL System 4 , UNIVAC 1108 , IBM System / 360 , DEC PDP-9 , DEC PDP-15 , CTL Modular One, x86 |
SO | BOS / 360 , DOS , Windows , Linux |
Implementações principais | |
Edimburgo IMP | |
Dialetos | |
IMP77, IMP80 | |
Influenciado por | |
ALGOL 60 , Atlas Autocode |
O IMP de Edimburgo é um desenvolvimento do Atlas Autocode , inicialmente desenvolvido por volta de 1966-1969 na Universidade de Edimburgo , na Escócia . É uma linguagem de programação de propósito geral muito usada para programação de sistemas .
Expressivamente, IMP é muito semelhante ao ALGOL e inclui toda a estrutura de bloco do estilo ALGOL , palavras reservadas ( palavras- chave) e tipos de dados , como matrizes e registros . Ele adiciona às linguagens de estilo ALGOL um tipo de string (uma matriz de caracteres, embora estes tenham um tamanho pré-declarado) e operadores integrados para manipulação de string e tratamento de caracteres.
O IMP fornece controle significativo sobre o mapeamento de armazenamento de dados, além de comandos para endereçamento dentro de partes de palavras. A maioria dos compiladores IMP oferece verificações de tempo de execução geradas pelo compilador e um recurso de rastreamento de pilha (backtrace) por padrão, mesmo em código de produção. IMP permite instruções em linguagem de máquina assembler embutidas no código-fonte .
Os primeiros compiladores IMP foram desenvolvidos para os computadores elétricos ingleses KDF9 , ICL System 4 , UNIVAC 1108 , IBM System / 360 , DEC PDP-9 , DEC PDP-15 e CTL Modular One. IMP foi usado para implementar o sistema operacional Edinburgh Multiple Access System (EMAS) , e um compilador foi escrito para a série ICL 2900 para permitir a portabilidade do EMAS para essa plataforma . Anos depois, uma versão do IMP chamada IMP77 foi desenvolvida por Peter Robertson no departamento de Ciência da Computação em Edimburgo, que era um compilador portátil que trouxe o IMP para ainda mais plataformas. Em 2002, a linguagem IMP77 foi ressuscitada pelo Projeto de História do Computador de Edimburgo para hardware Intel x86 executando DOS , Windows e Linux , e está mais uma vez em uso por graduados e expatriados de Edimburgo.
O IMP e IMP77 divergentes foram posteriormente consolidados em uma linguagem com a introdução do padrão IMP80, apoiado por implementações do Centro Regional de Computação de Edimburgo. O IMP80 também foi portado para várias plataformas, incluindo Intel, e estava ativamente em uso na década de 1990.
O IMP de Edimburgo não está relacionado à linguagem de programação extensível de sintaxe posterior do IMP desenvolvida por Edgar T. Irons , para o CDC 6600 , que foi a principal linguagem usada pela Agência de Segurança Nacional (NSA) por muitos anos.
Veja também
- IMP (linguagem de programação) (contraste)
Origens
- "Early IMP Program (o primeiro programa de auto-reprodução conhecido no mundo)" .
- "Compilador IMP77: Intel (Windows, Linux)" . Arquivado do original em 2005-04-07 . Página visitada em 2020-05-05 .
- McLeod, Roderick (1974). "Edinburgh IMP Language Manual, Second edition, scan" .
- Robertson, Peter S. (dezembro de 1977). "The IMP77 Language: A Reference Manual (rekeyed 2003)" (PDF) . Projeto de História do Computador de Edimburgo . Universidade de Edimburgo. Arquivado do original (PDF) em 29/05/2005.( Versão ASCII )
- "Usando Imp77" .
- "A produção de código de máquina otimizado para linguagens de alto nível usando códigos intermediários independentes de máquina" .
- "I-Code V1.3 Working Notes" . Arquivado do original em 16/12/2004.
- "Guia do usuário do IMP11" .
- Farvis, Keith M. (junho de 1978). "IMP no DECsystem-10/20: Guia do usuário (manual da biblioteca)" .
- Stephens, Felicity; Murison, John. "Manual de idioma do Edinburgh IMP80" .
- Bratley; Rees; Schofield; Whitfield (1965). "Fonte do primeiro compilador IMP; para Inglês Elétrico KDF9" .
- Dewar, Hamish. "Compilador IMP para PDP9 / PDP15 (código fonte)" .
- "Porta do Windows do IMP15 (gera arquivos .exe autônomos)" .
- Dewar, Hamish Notes on. "Saída do Compilador IMP9" .
- Rees, David. "Compilador Skimp MkII (usado na classe de compiladores do terceiro ano na Universidade de Edimburgo)" . Arquivado do original em 29/09/2007.
- "Compilador IMP para PDP11 inicializado via Skimp (código-fonte)" .
- "Fonte do primeiro compilador IMP escrito inteiramente em IMP" . 1970.
- Dewar, Hamish. "Fonte do compilador IMP para plataforma 68000" . Arquivado do original em 27/11/2003.
- Robertson, Peter. "Fontes de compiladores Imp77 para várias plataformas" .
- Stephens, Peter D. "Fonte do compilador Imp80 para Intel" .
- Schofield, Peter D. "Notes on IMP Programming" .
- Stephens, Peter D. "The IMP Language and Compiler (extract)" . Arquivado do original em 24/09/2006.
- Stephens, Peter D. "IMP80: A Historical Introduction" . Arquivado do original em 2004-12-07.
- Murison, John M. "Diferenças entre ERCC IMP em ICL 4/75 e IMP80 em ICL2900" .
Referências
Barritt, MM; et al. (Julho de 1970). Manual de linguagem IMP de Edimburgo . Universidade de Edimburgo, Centro de Computação Regional de Edimburgo.