Saltar para o conteúdo

Information Processing Language

Origem: Wikipédia, a enciclopédia livre.

Predefinição:Emtraducao


Information Processing Language (IPL)
Surgido em 1956
Criado por Allen Newell, Cliff Shaw, Herbert Simon
Principais implementações IPL-V, IPL-VI
Influenciou Lisp

Information Processing Language (IPL) é uma linguagem de programação desenvolvida por Allen Newell, Cliff Shaw, e Herbert Simon da RAND Corporation e do Carnegie Institute of Technology criada cerca de 1956. Newell tinha o papel de especificador linguagem programador da aplicação, Shaw era o programador do sistema e Simon assumiu o papel de programador do aplicativo do usuário.

A linguagem inclui recursos destinados a apoiar programas que poderiam executar programas para solução geral de problemas(GPS - General Problem Solving), incluindo listas, associações, esquemas (frames), alocação dinâmica de memória, tipos de dados, recursividade, recuperação associativa, funções como argumentos, (geradores de fluxos), e multitarefa cooperativa. IPL foi pioneira no conceito de processamento de listas, embora em um estilo de linguagem de montagem.


Um gosto da IPL

Uma computador IPL tem:

  1. Um conjunto de símbolos. Todos os símbolos são endereços e nomes de célula. Ao contrário dos símbolos nas linguagens posteriores, símbolos consistem de caracteres seguido por um números, e são escritos H1, A29, 9-7, 9-100.
    1. Nomes de células começando com uma letra são regionais, e são endereços absolutos.
    2. Nomes de células começando com "9 -" sãolocais, e são significativos dentro do contexto de uma lista única. Uma lista de 9-1 é independente de outra lista 9-1.
    3. Outros símbolos (por exemplo, puramente números) são internos.
  2. Um conjunto de células. As listas são construídas a partir de várias células com referência mútua. As células têm vários campos:
    1. P, um campo de 3 bits usado para um código de operação quando a célula é usada como uma instrução, e não usado quando a célula é de dados.
    2. Q, um campo com 3 valores usado para referência indireta quando a célula é usada como uma instrução, e não usado quando a célula é de dados.
    3. SYMB, um símbolo usado como o valor na célula.
  3. Um conjunto de processos primitivos, que seriam chamados de funções primitivas nas línguas modernas.

A estrutura de dados principal do IPL é a lista, mas as listas de IPL são estruturas mais complexas do que em muitas outras linguagens. Uma lista é constituída por uma única seqüência de símbolos ligados, como se poderia esperar -- acrescida de algumas listas de descrição, que são listas encadeadas subsidiárias, isoladamente, interpretadas como nomes de atributos e valores alternativos. IPL fornece primitivas para acessar e modificar o valor do atributo pelo nome. As listas de descrição recebem nomes locais (da forma 9-1). Assim, uma lista chamada L1 contendo os símbolos S4 e S5, e descrita pelo valor associado de V1 ao atributo A1 e V2 para A2, seria armazenada como se segue. 0 indica o fim de uma lista, os nomes de células 100, 101, etc são símbolos internos gerados automaticamente e cujos valores são irrelevantes. Essas células podem ser espalhadas por toda a memória; somente a L1, que usa um nome regional é que deve ser conhecida globalmente, tem de residir em um lugar específico.

Exemplo de Lista Estruturada em IPL-V
Name SYMB LINK
L1 9-1 100
100 S4 101
101 S5 0
9-1 0 200
200 A1 201
201 V1 202
202 A2 203
203 V2 0

IPL é uma linguagem de montagem para a manipulação de listas. Ela tem algumas células que são usadas como registradores de propósito especial. H1, por exemplo, é usada como contador de programa. O campo SYMB de H1 é o nome da instrução atual. Contudo, H1 é interpretada como uma lista; o LINK de H1, em termos atuais, é um ponteiro para a cabeça da pilha de chamadas. Por exemplo, chamadas de subrotinas empilham o SYMB de H1 na pilha.

H2 é a lista vazia. Procedimentos que necessitam alocar memória obtém células fora de H2; procedimentos que já terminaram com a utilização da memória a colocam em H2. À entrada para uma função, a lista de parâmetros é dada em H0, ao sair, os resultados devem ser devolvidos em H0. Muitos procedimentos retornam um resultado booleano indicando o sucesso ou fracasso, que é colocado em H5. Dez células, W0-W9, são reservados para armazenamento de trabalho em área pública. Os procedimentos são "moralmente vinculados" (para citar o artigo da Comunications of the ACM) para salvar e restaurar os valores destas células.


Publicações

  • Newell, A. and F.C. Shaw. "Programming the Logic Theory Machine." Feb. 1957. Proceedings of the Western Joint Computer Conference, pp. 230-240.
  • Newell, Allen, and Fred M. Tonge. 1960. "An Introduction to Information Processing Language V." CACM 3(4): 205-211.
  • Newell, Allen. 1964. Information processing language-v manual; Second Edition. Rand Corporation

[Allen Newell], Englewood Cliffs, NJ: Prentice-Hall.

  • HOROWITZ, Ellis (editor) (1987). Programming Languages. A Grand Tour 3ª ed. Rockvile: Computer Science Press. 512 páginas 

Ligações externas


Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.