APL

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
NoFonti.svg
Este artigo ou se(c)ção cita fontes fiáveis e independentes, mas que não cobrem todo o conteúdo (desde janeiro de 2014). Por favor, adicione mais referências e insira-as corretamente no texto ou no rodapé. Material sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
APL
Surgido em 1964
Criado por Kenneth Iverson
Estilo de tipagem: dinâmica
Compiladores IBM APL2
Influenciada por Notação Matemática
Influenciou J

APL é uma linguagem de programação destinada a operações matemáticas.

Ela nasceu do trabalho do professor de matemática canadense Kenneth Iverson. A linguagem APL foi formalmente definida e introduzida por Iverson em seu livro A Programming Language de 1962.[1] Sua proposta original era a de produzir uma nova notação matemática, menos sujeita às ambigüidades da notação convencional. Segundo Iverson, foi projetada com o objetivo de ser matematicamente concisa.

Na década de 1960, trabalhando na IBM em conjunto com Adin Falcoff, ambos produziram a primeira versão de APL, quando um interpretador da linguagem ficou disponível.

Programas em APL em geral sempre são muito pequenos, embora poderosos. A linguagem está preparada para tratar arranjos de grandes dimensões. Por exemplo, quando em APL se escreve A+B, se A e B forem escalares (isto é um número único), a resposta também o será. Se A e B são vetores de 100 números, a resposta também o será. Idem para matrizes e até arrays-nd. Em algumas versões de APL este n chega a 256 dimensões.

O Conjunto de Caracteres APL[editar | editar código-fonte]

A principal característica de APL é o uso de um conjunto especial de caracteres que incluem algumas letras gregas (rho, iota…), símbolos matemáticos convencionais (o sinal de vezes, o de dividido…) e alguns símbolos especialmente inventados. Este fato sempre limitou a disseminação da linguagem. Até o advento das interfaces gráficas (windows, por exemplo), exigia-se um hardware especial para poder programar em APL. A linguagem APL recebeu muitas críticas pelo fato de usar este conjunto de caracteres não padronizado. Tal número de caracteres adicionais pode levar a um grau de complexidade alto resultando em uma baixa legibilidade. Por outro lado, o conjunto adicional de caracteres dá a linguagem uma elegância e a tornam concisa, o que é mais difícil de se conseguir em linguagens com um conjunto de caracteres reduzido.

Símbolos APL e os Layouts de Teclado[editar | editar código-fonte]

Para solucionar o problema da falta de caracteres especiais nos conjuntos padrão (como o ASCII, por exemplo) alguns interpretadores APL tem mapeamentos ou conjuntos de teclas simultâneas para a entrada destes. Uma das associações que se procurou fazer, para facilitar a busca, é relacionar os símbolos com as suas respectivas letras iniciais como no caso do símbolo de interrogação '?' em cima da letra 'Q' (Em inglês question mark) ou o símbolo '∇' em cima da letra 'G' (Em inglês: gradient). A figura abaixo ilustra um exemplo de teclado com os símbolos APL:

APL-keybd2.svg

Exemplos de código[editar | editar código-fonte]

Função Fatorial[editar | editar código-fonte]

      ∇ FATORIAL [⎕]∇
    ∇ Z ← FATORIAL N
[1]   → (N ≠ 0) / A
[2]   → 0,Z ← 1
[3]  A:Z←N×FATORIAL(N-1)
    ∇

Soma dos Elementos de um Vetor[editar | editar código-fonte]

[10]  VETOR ← 10 ⍴ 1 2 3 4 5 6 7 8 9 10  
[11]  SOMA ← 0 
[12]  I ← 1
[13] VOLTA: → (I > ⍴VETOR) / SAI
[14]  SOMA ← SOMA + VETOR[I] 
[15]  I ← I + 1
[16]  → VOLTA
[17] SAI:

Referências

  1. TUCKER Jr., Allen B.. Programming Languages. 2ª. ed. New York: McGraw-Hill, 1986. 590 pp. ISBN 0-07-065416-6.

Bibliografia[editar | editar código-fonte]

  • IVERSON, Kenneth E.. A Programming Language. New York: John Wiley and Sons, 1962. 286 pp. ISBN 0-47143014-5.
  • TUCKER Jr., Allen B.. Programming Languages. 2ª. ed. New York: McGraw-Hill, 1986. 590 pp. ISBN 0-07-065416-6.
  • ZIMMERMANN, Carlos Jorge. Processamento Interativo: a Linguagem de Programação APL. Rio de Janeiro: LTC, 1981. ISBN 85-216-0138-7.