APL (uma linguagem de programação): programação com símbolos?

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


Uma linguagem de programação (APL) é nomeada em homenagem a um livro publicado por Kenneth E Iverson em 1962.

APL é uma linguagem de programação exclusiva, inclinada matematicamente, projetada para concisão, que influenciou o desenvolvimento de planilhas modernas e pacotes de software matemático.

História do APL

Na década de 1950, um professor da Universidade de Harvard criou um sistema de notação matemática que era útil para manipular matrizes complexas de informações. Este professor foi Kenneth Iverson.

Em 1960, Iverson foi trabalhar para a IBM, onde, com a ajuda do engenheiro de sistemas de computação Adin Falkoff, ele criou uma linguagem de programação baseada na notação matemática que havia desenvolvido enquanto trabalhava na academia..

Esta linguagem de programação, apesar de pouco prática de implementar na época, foi publicada no texto A Programming Language, e nasceu a APL.

O APL foi inicialmente usado na IBM para realizar pesquisas em sistemas de computadores. No entanto, ao longo da década de 1960, a aceitação do APL foi limitada por sua sintaxe incomum, que inclui muitos símbolos gráficos que não podiam ser facilmente representados nos computadores da época. Como resultado, representações stand-in de palavras-chave tiveram que ser usadas em vez dos símbolos reais que Iverson pretendia.

Tudo isso mudou no final dos anos 1960, quando a IBM lançou uma bola de tipos especial que poderia produzir os símbolos especiais usados ​​no APL.

A IBM apresentou o APL simultaneamente ao público da computação, disponibilizando o APL nos computadores mainframe da IBM. Nas duas décadas seguintes, mais ou menos, a APL viveu em computadores mainframe distribuídos pela IBM e outros fabricantes concorrentes de hardware e software, até que os recursos de hardware de computadores pessoais alcançassem a natureza exigente da compilação de APL.

No início dos anos 80, a IBM lançou uma versão atualizada da linguagem de programação APL2, que introduziu uma série de aprimoramentos, incluindo o conceito de matrizes multidimensionais aninhadas.

Em 1980, Ken Iverson não estava mais no controle de APL na IBM e deixou de se juntar à IP Sharp Associates, um desenvolvedor concorrente de implementações de APL que havia acabado de lançar uma versão proprietária da linguagem chamada Sharp APL – um produto que, no futuro desenvolvimento, estava feliz. Iverson assumir.

A IBM conseguiu superar a I P Sharp ao estabelecer sua versão do APL, APL2, como a implementação de APL padrão do setor. Até hoje, as implementações modernas de APL citam a compatibilidade com APL2.

APL moderno

De acordo com a APL Wiki, existem pelo menos cinco implementações modernas de APL:

  • O APL2 2.0, da IBM, ainda é considerado a implementação de APL padrão do setor.

  • O APLX, da Micro APL, é construído no APL2 da IBM com vários aprimoramentos.

  • O Dyalog é um ambiente de desenvolvimento baseado em APL e a plataforma APL com recursos completos mais adotada de maneira econômica.

  • APL + Win é um ambiente de desenvolvimento APL do APL2000.

  • O NARS2000 é uma implementação de código aberto, sem custo e com recursos limitados, projetada para dar aos interessados ​​em APL a oportunidade de experimentar o APL gratuitamente.

Sintaxe da APL

Algumas linguagens de programação foram projetadas intencionalmente para serem lidas facilmente por qualquer pessoa – programador ou não.

Ruby, Python, COBOL e muitas outras linguagens de programação empregam uma sintaxe que pode ser lida, se não realmente entendida, por qualquer pessoa com uma sólida compreensão do idioma inglês..

APL não é um desses idiomas.

Para qualquer pessoa que não esteja familiarizada com a sintaxe do idioma, a APL parece uma série de símbolos gráficos, letras e números sem sentido.

No entanto, para um programador de APL, cada símbolo gráfico ou conjunto de símbolos representa uma função matemática – geralmente uma função bastante complexa.

Além da sintaxe exclusiva, o uso de matrizes multidimensionais aninhadas é outro recurso que torna a APL um pouco única entre as linguagens de programação..

Símbolos gráficos em APL

Símbolos gráficos são usados ​​para representar funções e operadores. Alguns dos símbolos usados ​​são comuns e facilmente compreendidos:

  • ≠: não é igual a

  • > e <: usado para comparar dois valores e retornar o valor maior ou menor

  • +, −, ÷ e ×: usado para executar funções matemáticas típicas.

O significado de muitos outros símbolos não é facilmente aparente para programadores que não são da APL:

  • ⍴: rho, usado para retornar a forma de uma matriz ou remodelar uma matriz.

  • ⌽: estilo circular, inverte a ordem ou uma matriz ou gira uma matriz em uma direção multidimensional.

  • ⍋ e ⍒: classificar para cima e para baixo, reorganiza uma matriz em ordem decrescente ou ascendente.

Estas são apenas algumas das dezenas de símbolos usados ​​no APL.

Embora possa ser esmagador para um iniciante tentar absorver todos esses símbolos, seu significado e como usá-los, programadores experientes de APL reivindicam uma produtividade significativamente aprimorada como resultado da digitação reduzida necessária para criar funções incrivelmente poderosas.

Matrizes multidimensionais aninhadas

Matrizes unidimensionais simples são um tipo de dados comum na programação de computadores. Matrizes são apenas coleções de variáveis ​​ou valores. Por exemplo, [0, 1, 2] é uma matriz que contém os valores 0, 1 e 2.

Matrizes multidimensionais são compostas de várias linhas de itens de matriz em um layout tabular. Por exemplo, uma continuação da matriz listada acima em uma matriz multidimensional 3 por 3 pode ser assim:

0 012
345
678

Matrizes aninhadas são outra maneira de aprimorar os dados contidos em uma matriz. Em uma matriz aninhada, cada item é capaz de conter matrizes adicionais e não apenas valores ou variáveis ​​únicos.

No APL, as matrizes podem ser multidimensionais e conter matrizes aninhadas. Pode ser um pouco difícil de entender, então vamos ver um exemplo.

Usando a matriz multidimensional no exemplo acima, substituiremos o item na posição central (2, 2) (o número 4) por uma nova matriz multidimensional composta pelas letras a, b, c e d.

0 012
3umab5
cd
678

Se o item nas posições 2, 2 dessa matriz fosse referenciado, a matriz contendo as variáveis ​​a, b, c e d seria retornada.

A capacidade das matrizes de manter valores e variáveis ​​multidimensionais aninhados foi adicionada ao Sharp APL e APL2 no final da década de 1970 e no início da década de 1980 e continua sendo um dos recursos definidores da APL..

Configurando um ambiente de desenvolvimento APL

Para trabalhar com o APL, você precisará equipar o seu computador para produzir símbolos do APL e instalar um intérprete do APL. Para instalar um intérprete de APL, selecione uma das implementações modernas de APL listadas acima.

Nossa recomendação é instalar o NARS2000 ou o Dyalog. O NARS2000 é totalmente gratuito, mas oferece um conjunto limitado de recursos.

O Dyalog pode ser baixado gratuitamente (vá para a parte inferior da página e selecione Baixar a versão não registrada), mas você desejará comprar uma cópia registrada se acabar usando o APL a longo prazo..

Depois de instalar uma implementação de APL, você precisará configurar sua máquina para produzir os símbolos necessários para codificar no APL. Algumas implementações de APL incluem um menu de teclado pop-up que você pode usar para digitar símbolos de APL sem precisar instalar fontes ou adquirir novo hardware.

Se você não estiver pronto para fazer todo esse esforço, outra opção é experimentar o APL no navegador. O TryAPL é um site gratuito, criado por Dyalog, onde você pode executar o código APL no seu navegador para ter uma ideia de como o APL funciona.

Recursos APL

Um dos melhores lugares para aprender sobre o APL é o Wiki do APL. Esse recurso, criado em colaboração pela comunidade APL, fornece uma riqueza de recursos educacionais e informações sobre o uso moderno de APL.

Se você está pronto para começar a aprender, aqui estão alguns dos recursos mais úteis que você encontrará no wiki:

  • APL em 20 minutos: uma rápida olhada no que é APL e o que ela pode fazer.

  • Aprendendo APL: um tutorial para iniciantes que aborda os conceitos básicos de codificação em APL.

  • Olá mundo: nenhuma educação em programação estaria completa sem este exercício clássico.

  • Tópicos adicionais no APL: se você concluiu o tutorial Learning APL, este é um ótimo próximo passo para a competência APL.

  • Práticas de trabalho: se você passou pelos tutoriais anteriores, tem uma compreensão básica do APL, como usá-lo e o que ele pode fazer. O próximo passo é começar a trabalhar em seus próprios projetos. No entanto, antes de fazer isso, leia sobre as práticas de fluxo de trabalho de desenvolvedores experientes de APL.

O APL2000 é um pouco diferente das outras implementações de APL e pode até ser usado no .NET Framework com um pouco de esforço adicional. Se isso lhe interessa, saiba mais sobre o VisualAPL no APL200 com estes recursos:

  • Tutorial do VisualAPL em formato PDF

  • Webcasts do VisualAPL.

Dois recursos icônicos da comunidade da APL incluem um artigo escrito por Bernard Legrand em 2006 e a prática de recriar o Jogo da Vida de Conway na APL.

Você pode ler o artigo de Legrand, APL – A Glimpse of Heaven at Vector, o site da Associação Britânica de APL.

Você pode aprender sobre o Game of Life de Conway e como ele pode ser recriado em uma única linha de código APL lendo sobre ele ou assistindo a um screencast que explica o processo.

Livros

Alguns textos da APL foram escritos nas últimas cinco décadas. Aqui estão seis dos melhores:

  • Uma linguagem de programação de Kenneth E Iverson, o livro que começou tudo

  • APL: Uma abordagem interativa de Gilman e Rose

  • APL2 em profundidade por Thompson e Polivka

  • Resumo do APL 2 de Brown, Pakin e Polivka

  • APL com sotaque matemático de Reiter e Jones

  • Dominar o Dyalog APL: uma introdução completa ao Dyalog APL de Bernard Legrand, também disponível como PDF gratuito.

Conclusão

APL é uma linguagem de programação inclinada matematicamente, cujos recursos definidores incluem uma sintaxe altamente simbólica e suporte para matrizes multidimensionais aninhadas.

A curva de aprendizado do APL é quase vertical, então você pode fazer uma escalada excepcionalmente íngreme se decidir aprender o APL.

A recompensa é que você estará no caminho de dominar uma das linguagens de programação mais poderosas já criadas.

Leitura e recursos adicionais

Temos mais guias, tutoriais e infográficos relacionados à codificação e desenvolvimento:

  • Introdução e recursos do COBOL: embora fosse uma linguagem anterior, o COBOL é quase o oposto do APL em termos de legibilidade.

  • Recursos Fortran: provavelmente a primeira linguagem de programação de computador de alto nível, o desenvolvimento no Fortran começou quase uma década antes da APL.

  • Introdução à linguagem Assembly: aprenda a programação de computadores em seu nível mais básico.

Que código você deve aprender?

Confuso sobre qual linguagem de programação você deve aprender a codificar? Confira nosso infográfico: Que código você deve aprender? Ele não apenas discute aspectos diferentes das linguagens, mas também responde a perguntas importantes como: “Quanto dinheiro ganho com a programação de Java para viver?”

Que código você deve aprender?
Que código você deve aprender?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map