Top 10 artigosGooleHotmail Lista dos países onde o inglês é uma língua oficial Lista de doenças mentais Gmail Família real britânica Googol Tuenti Tsunami KGB |
News: |
| APL | |
|---|---|
| Paradigm | disposição, funcional, estruturado, modular |
| Aparecido dentro | 1964 |
| Projetado perto | Kenneth E. Iverson |
| Colaborador | Kenneth E. Iverson |
| Disciplina datilografando | dinâmico |
| Execuções principais | IBM APL2, Dyalog APL, APL2000, APL afiado |
| Dialects | A+, Dyalog APL, APLNext |
| Influenciado perto | notação matemática |
| Influenciado | J, K, Nial |
APL (A Programming Lo anguage) é programação da disposição língua baseada em uma notação inventada em 1957 perto Kenneth E. Iverson quando em Universidade de Harvard. Originou como uma tentativa de fornecer a notação consistente para o ensino e a análise dos tópicos relacionados à aplicação dos computadores. Iverson publicou sua notação em 1962 em um livro intitulado Uma língua de programação. Por 1965, um subconjunto da notação foi executado como uma língua de programação, a seguir sabido como IVSYS. Mais tarde, antes de sua liberação comercial, o APL começou seu nome do título do livro. Iverson recebeu Concessão de Turing em 1979 para seu trabalho.
A notação de Iverson foi usada mais tarde descrever IBM System/360 faça à máquina a arquitetura, uma descrição muito mais concisa e exata do que a documentação existente e revelar diversos problemas previamente despercebidos. Mais tarde, a Selectric o typeball foi projetado especialmente escrever uma respresentação linear desta notação. Este aspecto distintivo do APL, o uso de um caráter especial - ajuste visualmente descrever as operações a ser executadas hoje, remains fundamental inalterado.
As características de língua do APL um jogo rico das operações que trabalham em inteiro disposições dos dados, como o jogo de instrução do vetor de a SIMD arquitetura. Quando muitas línguas de computador requereriam iteração a, por exemplo, adicione duas disposições junto, funções no negócio do APL tipicamente com disposições inteiras em uma vez. Conjuntamente com um caráter especial - ajuste-se aonde os glyphs representam as operações a ser executadas, isto reduz dràstica o número potencial dos laços e permite-o menor, uns programas mais concisos e mais compactos.
Como com todas as línguas de programação que tiveram diversas décadas do uso contínuo, o APL evoluiu significativamente, geralmente em uma maneira para cima-compatível, de suas liberações mais adiantadas. O APL é geralmente interpretive e interativo, e caracteriza normalmente l-avalí-imprimem o laço (REPL) para a entrada do comando e da expressão. Hoje, quase toda a sustentação moderna das execuções programação estruturada quando diversos dialects caracterizarem agora algum formulário de objeto - orientado construções de programação.
Índices |
O primeiro incarnation de o que estava mais atrasado ser a língua de programação do APL era um livro que descreve uma notação inventada em 1957 perto Kenneth E. Iverson quando em Universidade de Harvard. Publicado em 1962, a notação descrita no livro era recognizable contudo distante do APL.
IBM era principalmente responsável para a introdução do APL ao marketplace. Em 1965, uma parcela da notação reworked e executou como uma língua de programação. O APL estava primeiramente disponível em 1967 para IBM 1130 como APL \ 1130[1]. O APL ganhou seu foothold em sistemas timesharing do mainframe dos 1960s atrasados com os 1980s. Mais tarde, quando apropriadamente executar a ferragem era começar finalmente disponível no adiantado aos mid-1980s, muitos usuários migrou suas aplicações ao ambiente de computador pessoal.
Intérpretes adiantados de IBM APL para IBM 360 e IBM 370 a ferragem executou sua própria gerência multi-user em vez de confiar nos serviços de anfitrião, assim eram sistemas timesharing em sua própria direita. Introduzido primeiramente em 1966, APL \ 360 o sistema era um intérprete multi-user. Em 1973, IBM liberou-se APL.SV qual eram uma continuação do mesmo produto, mas que ofereceu variáveis compartilhadas como meios alcançar facilidades fora do sistema do APL, tal como limas de sistema operando-se. Nos 1970s mid, o intérprete do mainframe de IBM foi adaptado mesmo para o uso no IBM 5100 computador desktop, que teve um CRT pequeno e um teclado do APL, quando a maioria outros de computadores pequenos do tempo ofereceram somente o BASIC. Nos 1980s, VSAPL o produto do programa apreciou uso difundido com CMS, TSO, VSPC, e CICS usuários.
Diversas empresa timesharing saltaram acima nos 1960s e nos 1970s que venderam serviços do APL usando versões modificadas do intérprete APL \ 360 de IBM. Em America do Norte, melhor-sabidas estavam I. P. Associados do Sharp, Científico Timesharing Corporaçõ, e a companhia de computador (TCC). Com o advent primeiramente de mainframes mais menos caros tais como IBM 4331 e mais atrasado o computador pessoal, a indústria timesharing teve tudo com exceção do desaparecido pelos 1980s mid.
APL afiado estava disponível de I. P. Associados do Sharp, primeiramente em uma base timesharing nos 1960s, e mais tarde como um produto do programa que começa ao redor 1979. APL afiado era uma execução avançada do APL com muitas extensões de língua, como pacotes (a abilidade de pôr um ou mais objeto em uma única variável), o sistema de lima, aninhou disposições, e variáveis compartilhadas.
Os intérpretes do APL estavam disponíveis do outro mainframe e o mini-computer manufatura também, notàvelmente Burroughs, CDC, Dados - general, DEC, Harris, Hewlett-Packard, Siemens, Xerox, e outros.
Começando nos 1980s adiantados, desenvolvimento de IBM APL, sob a liderança do Dr. Marrom de Jim, executado uma versão nova da língua do APL de que conteve como seu realce preliminar o conceito disposições aninhadas onde uma disposição pode conter outras disposições, mais as características de língua novas que facilitaram a integração de disposições aninhadas no workflow do programa. Ken Iverson, já não no controle do desenvolvimento da língua do APL, IBM esquerdo e juntado I. P. Associados do Sharp onde, entre outras coisas, dirigiu a evolução do APL afiado para ser mais de acordo com sua visão. Iverson desenvolveu mais tarde Língua de J.
Porque outros vendedores eram ocupados intérpretes se tornar do APL para a ferragem nova, notàvelmente Unix- baseado microcomputers, APL2 era quase sempre o padrão escolhido para desenvolvimentos novos do intérprete do APL. Mesmo hoje, a maioria de vendedores do APL cite a compatibilidade APL2, que aproxima somente 100%, como um ponto vendendo para seus produtos.
APL2 para IBM os computadores de mainframe são ainda hoje disponível, e estavam primeiramente disponíveis para CMS e TSO ao redor 1980. A edição da estação de trabalho APL2 (Windows, OS/2, AIX, Linux, e Solaris) seguiu muito mais tarde nos 1990s adiantados.
A primeira execução do microcomputer do APL estava no MCM/70, 8008- processador baseado, em 1973. A APL pequeno para Intel 8080 EMPL chamados foram liberados em 1977, e em Softronics APL, com as a maioria das funções do APL cheio, porque 8080 sistemas baseados de CP/M foram liberados em 1979.
Em 1977, foi liberado um nível APL do negócio sabido como TIS APL, baseado no processador Z80. Caracterizou o jogo cheio de funções da lima para o APL, mais uma tela cheia input e o switching de argumentos direitos e esquerdos para a maioria de operadores diádicos introduzindo o ~. prefixo a todas as funções diádicas do único caráter como - ou a/.
O Vanguard APL estava disponível para Z80 CP/M- processadores baseados nos 1970s atrasados. TCC liberou APL.68000 nos 1980s adiantados para Motorola 68000- processadores baseados, este sistema que é a base para produto limitado de MicroAPL APLX. I. P. Os associados do Sharp liberaram uma versão de seu intérprete do APL para o PC e o PC/370 de IBM - para o PC de IBM, emulador foi escrito que facilitou reusing muito do código do mainframe de IBM 370. Arguably, o mais melhor intérprete conhecido do APL para o computador pessoal de IBM era STSC's APL*Plus/PC.
Nos 1980s adiantados, os Analogic Corporaçõ tornaram-se A máquina do APL, que era processar de disposição o computador projetou ser programado somente no APL. Havia realmente três unidades processando, a estação de trabalho do usuário, PC DE IBM, onde os programas foram incorporados e editados, Motorola 6800 processador que funcionou o intérprete do APL, e o processador de disposição Analogic que executou os primitivos. Na altura de sua introdução a máquina do APL era provável o sistema o mais rápido do APL disponível. Embora um sucesso tecnologico, a máquina do APL fosse uma falha do marketing. A versão inicial suportou um único processo em um momento. Então o projeto foi interrompido, o projeto tinha sido terminado para permitir usuários múltiplos. Como um aparte, um aspecto incomun da máquina do APL era que a biblioteca dos espaços de trabalho estêve organizada tais que uma única função ou variável que fossem compartilhadas por muitos espaços de trabalho existiram somente uma vez na biblioteca. Diversos dos membros do projeto da máquina do APL tinham gastado previamente um número de anos com executar de Burroughs APL \ 700.
Em um estágio, Microsoft Corporation planeou liberar uma versão do APL, mas estas plantas nunca materialized.
Uma publicação 1978 adiantada de Rodnay Zaks de Sybex era Uma execução microprogrammed do APL ISBN 0895880059 qual é a lista completa, total da fonte para o microcódigo para um PDP/o processador LSI-11 que executa o APL. Esta pode ter sido a substância de seu thesis de PhD.
Sobre um jogo muito largo dos domínios do problema (math, ciência, engenharia, projeto do computador, robotics, visualization dos dados, ciência actuarial, DP tradicional, etc.) o APL é um extremamente poderoso, expressive e a língua de programação concisa, ajustou-se tipicamente em um ambiente interativo. Foi criado originalmente, entre outras coisas, como uma maneira descrever computadores, expressando notação matemática em uma maneira rigorous que poderia ser interpretada por um computador. É fácil aprender mas alguns programas do APL podem fazer exame de algum tempo para compreender, especialmente para um newcomer. Poucas outras línguas de programação oferecem a funcionalidade detalhada da disposição do APL.
Ao contrário das línguas de programação tradicional estruturadas, o código no APL é estruturado tipicamente como correntes de monadário ou diádico funções e operadores agir sobre disposições. Porque o APL tem muitos não padronizados primitivos (funções e operadores, indicados por um único símbolo ou por uma combinação de alguns símbolos), não tem a função ou precedência de operador. As execuções adiantadas do APL não tiveram controle estruturas (faça ou quando os laços, os se-então-outros), mas usando operações da disposição, uso de programação estruturada as construções eram nao necessárias justo. Por exemplo, a função do iota (que rende uma disposição one-dimensional, ou vetor, de 1 a N) pode substituir o para-laço iteração. Umas execuções mais recentes do APL incluem geralmente estruturas detalhadas do controle, assim o fluxo da estrutura de dados e do controle de programa pode ser claramente e separou limpa.
O ambiente do APL é chamado a espaço de trabalho. Em um espaço de trabalho o usuário pode definir programas e dados, isto é. os valores dos dados existem também fora dos programas, e o usuário pode manipular os dados sem a necessidade para definir um programa. Por exemplo,
atribui vetor valores 4 5 6 7 a N;
adiciona 4 a todos os valores (que dão 8 9 10 11) e imprime-os (um valor do retorno não atribuído no fim de uma indicação a uma variável usando a seta da atribuição é indicado pelo intérprete do APL);
imprime a soma de N, isto é. 22.
O usuário pode conservar o espaço de trabalho com todos os valores, programas e status da execução.
O APL é well-known para seu uso de um jogo de non-ASCII símbolos que são uma extensão da aritmética tradicional e notação algébrica. Tendo únicos nomes do caráter para SIMD as funções do vetor são de sentido único que o APL permite a formulação compacta dos algoritmos para a transformação dos dados tal como computar Jogo de Conway da vida em uma linha do código (exemplo). Em quase todas as versões do APL, é teòrica possível expressar toda a função computável em uma expressão, isto é, em uma linha do código.
Por causa de seus natureza condensada e caráteres não padronizados, o APL tem sido denominado às vezes “língua do write-only“, e leitura que uma lata do programa do APL na primeira sensação gosta de descodificar Hieroglyphics Egyptian. Por causa do incomun caráter - jogo, uso de muitos programadores especial teclados com keytops do APL para ser o autor do código do APL. Embora haja umas várias maneiras escrever o código do APL usando somente caráteres de ASCII[2], na prática, é feito quase nunca. (Isto pode ser pensado para suportar aproximadamente theses de Iverson notação como uma ferramenta do pensamento[a citação necessitou].) A maioria se não todas as execuções modernas usarem disposições de teclado padrão, com mappings especiais ou Editores do método de entrada aos caráteres do non-ASCII do acesso. Historicamente, a pia batismal do APL foi distintiva, com caráteres alfabéticos do itálico caixa e numeeses e símbolos eretos. A maioria de vendedores continuam a indicar o caráter do APL - ajuste em uma pia batismal feita sob encomenda.
Os advogados do APL reivindicam que os exemplos de código so-called do write-only são quase invariàvel exemplos dos erros de programação pobres da prática ou do novice, que podem ocorrer em toda a língua. Os advogados do APL reivindicam também que são mais produtivos distante com APL do que com línguas de computador mais convencionais, e que trabalhar o software pode ser executado distante em menos tempo e com distante poucos programadores do que usando a outra tecnologia. O APL deixa um indivíduo resolver mais rapidamente uns problemas mais duros. Também, sendo compacto e terse, o APL empresta-se bem ao desenvolvimento do software da escala maior enquanto a complexidade que se levanta de um grande número linhas do código pode dramàtica ser reduzida. Muitos advogados e os practitioners do APL vêem a programação em línguas de programação padrão, como COBOL e Java, como comparativamente tedious. O APL é encontrado frequentemente onde o tempo-à-mercado é importante, como com sistemas negociando.
Iverson projetou mais tarde Língua de programação de J qual se usa ASCII com digraphs em vez dos símbolos especiais.
Um exemplo muito simples que imóvel requeira diversas linhas do código no a maioria non-põe línguas de programação é um gerador do número aleatório do lottery da picareta 6 (de 1-40), termina com não garantir nenhum número repetido, e a classificação dos resultados em ordem ascending:
↑6? 40
A seguinte expressão sortes uma lista da palavra armazenada na matriz X de acordo com o comprimento de palavra:
X [⍋X+.≠ ';]
A seguinte função “vida”, escrita em Dyalog APL, faz exame de uma matriz booleana e calcula a geração nova de acordo com Jogo de Conway da vida:
No seguinte exemplo, também Dyalog, a primeira linha atribui algum código do HTML a um “txt variável” e usa então uma expressão do APL remover todos os Tag do HTML, retornando o texto somente como mostrado na última linha.
A seguinte expressão encontra tudo números principais de 1 a R (que presume uma origem do índice de 1). No tempo e no espaço, o cálculo é O (² de R).
(∼R∈R°.×R) /R←1↓ιR
De direito à esquerda, isto significa:
O APL era original na velocidade com que poderia executar operações complexas da matriz. Por exemplo, uma multiplicação muito grande da matriz faria exame somente de alguns segundos em uma máquina que fosse muito mais menos poderosa do que aquelas hoje. Havia umas razões técnicas e econômicas para esta vantagem:
Um papel extensamente cited “uma máquina do APL” (sida o autor por Phil Abrams) perpetuated o mito de que o APL fêz o uso pervasive avaliação preguiçosa onde os cálculos não seriam executados realmente até que os resultados estiveram needed e então somente aqueles cálculos requereram estritamente. De executar) uma avaliação preguiçosa óbvia (e fácil é J-vetor : quando um monadário iota é encontrado no código, IS-IS mantido como a respresentação em vez do cálculo em uma vez, assim conservando alguma hora as well as a memória.
Embora esta técnica não seja generalizada, embodies mecanismo da sobrevivência da língua o mais melhor: não especificando a ordem de operações escalares. Mesmo como estandardizado eventualmente por X3J10, o APL é assim altamente dados-paralelo, dá a implementors da língua a liberdade immense às operações da programação tão eficientemente como possível. Como inovações do computador como memória de esconderijo, e SIMD a execução tornou-se comercialmente disponível, os programas do APL movidos com poucos esforço extra detalhes de baixo nível re-optimizing gastados.
Hoje, a maioria de atividade da língua do APL ocorre sob o sistema operando-se do Microsoft Windows, com alguma atividade abaixo Linux, Unix, e Ósmio do Mac. Comparativamente pouca atividade do APL ocorre hoje em computadores de mainframe.
APLNow (anteriormente APL2000) oferece um intérprete avançado do APL que se opere sob Linux, Unix, e Windows. Suporta a automatização de Windows, as sustentações chamam-se ao sistema operando-se e ao usuário - DLLs definido, têm-se um sistema de lima avançado do APL, e representam-se o nível atual do desenvolvimento da língua do APL. O produto de APL2000 é uma continuação avançada de STSC'linha de produto bem sucedido e APL*Plus/386 de s APL*Plus/PC.
Dyalog APL é um intérprete avançado do APL que se opere sob Linux, Unix, e Windows. Dyalog tem as extensões aggressive à língua do APL que incluem novo objeto - orientado características, realces numerosos da língua, mais um consistente namespace modelo usado para ambos sua relação da automatização de Microsoft, as well as namespaces nativos. Para a plataforma de Windows, Dyalog APL oferece a integração apertada com Microsoft. Rede, mais integração limitada com a plataforma visual do desenvolvimento do estúdio de Microsoft.
IBM oferece uma versão de IBM APL2 para sistemas de IBM AIX, de Linux, de sol Solaris e de Windows. Este produto é uma continuação de APL2 oferecido para mainframes de IBM. IBM APL2 era arguably o sistema o mais influential do APL, que forneceu um padrão contínuo da execução para o jogo seguinte das extensões à língua, focalizando em disposições aninhadas.
Ofertas limitadas MicroAPL APLX, um intérprete full-featured de 64 bocados para Linux, Windows, e Apple Ósmio do Mac sistemas.
Soliton assocía ofertas o intérprete de SAX (APL afiado para o Unix) para sistemas do Unix e do Linux, que é um desenvolvimento mais adicional do I. P. Produto afiado do APL dos associados do Sharp. Ao contrário de a maioria outros de intérpretes do APL, Kenneth E. Iverson teve alguma influência nas disposições aninhadas maneira foram executados no APL afiado e no SAX. Quase todas execuções restantes do APL seguiram o curso ajustado por IBM com o APL2, assim alguns detalhes importantes no APL afiado diferem de outras execuções.
Os programas do APL são normalmente interpretado e menos frequentemente compilado. Na realidade, a maioria de compiladores do APL traduzido fonte APL a uma língua de nível mais baixo como C, deixando os detalhes machine-specific ao compilador do nível mais baixo. A compilação de programas do APL era um tópico freqüentemente discutido nas conferências. Embora alguns dos realces mais novos à língua do APL tal como disposições aninhadas rendam a língua cada vez mais difícil de compilar, a idéia da compilação do APL está ainda sob o desenvolvimento hoje.
No passado, a compilação do APL foi considerada como meios conseguir a velocidade da execução comparável a outras línguas mainstream, especialmente em computadores de mainframe. Diversos compiladores do APL conseguiram alguns níveis do sucesso, though comparativamente pouco do esforço do desenvolvimento gastado no APL sobre os anos foram a aperfeiçoar a compilação no código de máquina.
Como é o caso ao mover programas de um intérprete do APL do vendedor para outro, programas do APL do APL invariàvel requererá mudanças a seu índice. Dependendo do compilador, as declarações variáveis puderam ser needed, determinadas características de língua necessitariam ser removidas ou evitado, ou os programas do APL necessitariam ser limpados acima em alguma maneira. Algumas características da língua, tais como a função executar (um avaliador da expressão) e o vário reflexão e introspection as funções do APL, tal como a abilidade de retornar o texto de uma função ou de materialize uma função nova do texto, não são simplesmente práticas executar na compilação do código de máquina.
Um compilador comercial foi trazido ao mercado perto STSC nos 1980s mid como um add-on ao produto do programa de VSAPL de IBM. Ao contrário de uns compiladores mais modernos do APL, este produto produziu o código de máquina que executaria somente no ambiente do intérprete, ele não era possível para eliminar o componente do intérprete. O compilador poderia compilar muitos escalares e vector operações ao código de máquina, mas confiaria nos serviços do intérprete do APL para executar algumas funções mais avançadas, melhor que tenta compilá-las. Entretanto, os speedups dramáticos ocorreram, especialmente para o código pesadamente iterativo do APL.
Em torno do mesmo tempo, o livro Um compilador do APL por Timothy Budd aparecido na cópia. Este livro detalhou a construção de um tradutor do APL, escrita dentro C, que executou determinados optimizations tais como fusão do laço específico às necessidades de uma língua da disposição. A língua de fonte era APL-como que algumas réguas da língua do APL estiveram mudadas ou relaxaram para permitir uma compilação mais eficiente. O tradutor emitir-se-ia o código de C que fossem compilados então e a parte externa boa do funcionamento do espaço de trabalho do APL.
Hoje, a velocidade da execução é mais menos crítica e muitas línguas populares são usar-se executado máquinas virtuais - instruções que são interpretadas no runtime. O Burroughs/Unisys APLB o intérprete (1982) era o primeiro para usar a compilação incremental dinâmica produzir o código para uma máquina virtual APL-específica. Recompiled on-the-fly enquanto os identificadores mudaram seus meanings funcionais. Além a remover analisar gramaticalmente e algum verificar de erro do trajeto principal da execução, tal compilação aerodinamiza também a entrada e a saída repetidas de operandos funcionais user-defined. Isto evita a instalação da pilha e o desmonte para as ligações de controle feitas por operadores internos do APL como reduz-se e cada um.
APEX, um compilador do APL da pesquisa, está disponível do console Research Inc. da serpente O APEX compila APL liso (um subconjunto de ISO N8485) em SAC, uma língua funcional da disposição com semântica paralela, e funciona atualmente abaixo Linux. usos APEX-gerados do código fusão do laço e contração da disposição, algoritmos da especial-caixa não geralmente disponíveis aos intérpretes (por exemplo, melhoramento do vetor da permutação), para conseguir um nível do desempenho comparável àquele de Fortran.
O APLNext VisualAPL o sistema é uma partida de um sistema convencional do APL que VisualAPL é um verdadeiro. Língua líquida que é inteiramente inter-operável com outra . Microsoft. Rede línguas como VB.Net e C#. VisualAPL é inerente objeto - orientado e Unicode-baseado. Quando VisualAPL incorporar a maioria das características de execuções do APL do legacy, a língua de VisualAPL estende o legacy APL para ser. Rede-compliant. VisualAPL é hospedado no estúdio visual padrão IDE de Microsoft e como tal, invoca a compilação em uma maneira idêntica àquela de outra. Línguas líquidas. Produzindo. O código runtime líquido da língua comum (CLR), utiliza o compilador just-in-time de Microsoft (JIT) para suportar o bocado 32 ou a ferragem 64-bit. O desempenho substancial velocidade-levanta o legacy excedente APL estêve relatado, especialmente quando datilografar forte (opcional) de argumentos da função é usado.
Um APL a C# o tradutor está disponível dos sistemas gráficos do Causeway. Este produto foi projetado permitir o código do APL, traduzido a C# equivalente, para funcionar completamente fora do ambiente do APL. O compilador do Causeway requer uma biblioteca run-time de funções da disposição. Algum speedup, às vezes dramático, é visível, mas acontece no cliente dos optimisations inerentes em Microsoft . Rede estrutura.
O APL faz uma distinção desobstruída no meio funções e operadores. As funções fazem exame de valores (variáveis ou constantes ou expressões) como argumentos, e retornam valores como resultados. Operadores (aka funções higher-order) a tomada funciona como argumentos, e retorno relacionado, funções derivadas como resultados. Por exemplo a função da “soma” é derivada aplicando o operador da “redução” à função da “adição”. Aplicando o mesmo operador da redução ao “teto” funcione (que retorna o maior de dois valores) cría uma função “máxima” derivada, que retorne o maior de um grupo (vetor) dos valores. Na língua de J, Iverson substituiu os termos “verbo” e “advérbio” para a “função” e o “operador”.
O APL identifica também aquelas características construídas na língua, e representadas por um símbolo, ou por uma combinação fixa dos símbolos, como primitivos. A maioria de primitivos são funções ou operadores. O Coding APL é pela maior parte um processo de escrever funções non-primitivas e (em algumas versões do APL) operadores. Entretanto alguns primitivos são considerados ser nem funções nem operadores, o mais visivelmente atribuição.
O APL foi criticado sempre para sua escolha de um caráter original, não padronizado - jogo. A observação que alguns que a aprendem assentam bem geralmente nos aderente ardent mostra que há algum peso atrás Iverson'a idéia de s que a notação usou faz uma diferença. No começo, havia poucos dispositivos terminais que poderiam reproduzir o caráter do APL - jogo - os mais populares empregar IBM Selectric mecanismo de cópia junto com um tipo especial elemento do APL. Sobre o tempo, com o uso universal dos dispositivos de alta qualidade da exposição gráfica e imprimir, o problema da pia batismal de caráter do APL foi eliminado pela maior parte; entretanto, o problema de incorporar caráteres do APL requer o uso de editores do método de entrada ou os mappings especiais do teclado, que podem frustrar novatos acostumaram-se a outras línguas. Com o popularization do Unicode o padrão, que contem o caráter do APL - ajuste, o problema de obter as pias batismais requeridas parece poised para partir.
Do ponto de vista de um usuário, os caráteres adicionais podem dar a APL um elegance e um concision especiais nao possíveis em outras línguas, usando a mnemônica dos símbolos visualmente das funções que representam. Ou pode conduzir a um grau ridiculous de complexidade e de unreadability, tipicamente quando os símbolos são amarrados junto em uma única massa sem nenhuns comentários. Ou pode ser unreasonably difícil e tempo - consumindo para entrar então edite mais tarde aquelas indicações do APL.
Anote as mnemônica que assocíam um caráter do APL com uma letra: marca de pergunta em Q, poder em P, ró em R, valor baixo em B, codifique em N, modulus em M e assim por diante. Isto faz mais fácil para que um altofalante English-language datilografe o APL em um teclado non-APL que fornece um tem o gabarito visual em one tela. Também, os decalques foram produzidos para o acessório aos teclados padrão, na parte dianteira das chaves ou no alto delas.
Um diagrama mais moderno do teclado, uns aplicáveis para APL2 e outras execuções modernas, estão disponíveis: Disposição da união para janelas.
Todos os símbolos do APL estão atuais dentro Unicode (embora alguns produtos do APL não podem ainda caracterizar este):
| ' | ( | ) | + | , | - | . | / | : | ; | < | = | > | ? | [ | ] |
| \ | _ | ¨ | ¯ | × | ÷ | ← | ↑ | → | ↓ | ∆ | ∇ | ∘ | ∣ | ∧ | ∨ |
| ∩ | ∪ | ∼ | ≠ | ≤ | ≥ | ≬ | ⊂ | ⊃ | ⌈ | ⌊ | ⊤ | ⊥ | ⋆ | ⌶ | ⌷ |
| ⌸ | ⌹ | ⌺ | ⌻ | ⌼ | ⌽ | ⌾ | ⌿ | ⍀ | ⍁ | ⍂ | ⍃ | ⍄ | ⍅ | ⍆ | ⍇ |
| ⍈ | ⍉ | ⍊ | ⍋ | ⍌ | ⍍ | ⍎ | ⍏ | ⍐ | ⍑ | ⍒ | ⍓ | ⍔ | ⍕ | ⍖ | ⍗ |
| ⍘ | ⍙ | ⍚ | ⍛ | ⍜ | ⍝ | ⍞ | ⍟ | ⍠ | ⍡ | ⍢ | ⍣ | ⍤ | ⍥ | ⍦ | ⍧ |
| ⍨ | ⍩ | ⍪ | ⍫ | ⍬ | ⍭ | ⍮ | ⍯ | ⍰ | ⍱ | ⍲ | ⍳ | ⍴ | ⍵ | ⍶ | ⍷ |
| ⍸ | ⍹ | ⍺ | ⎕ | ○ |
Os caráteres adicionais do APL estavam disponíveis perto overstriking um caráter sobre outro. Por exemplo, registro o símbolo foi dado forma overstriking o deslocamentoP com deslocamentoO. Isto complicou corrigir erros e editar linhas de programa. Esta pode finalmente ter sido a razão para que os programas adiantados do APL tenham algum estilo denso - eram difíceis de editar.
Muitos overstrikes mostrados na tabela acima, embora apelando, não são usados realmente. Os overstrikes novos foram introduzidos por vendedores enquanto produziram as versões do APL costuradas à ferragem específica, características de sistema, sistema de lima, e assim por diante. Mais mais, imprimindo terminais e o APL adiantado os terminais de raios catódicos eram capazes de indicar overstrikes arbitrários, mas como computadores pessoais substituiu ràpidamente terminais como um dispositivo data-entry, caráter que do APL a sustentação foi fornecida agora como ROM do gerador de caráter do APL ou um caráter macio - jogo rendido pelo dispositivo de exposição. Com o advent de Windows, os caráteres do APL foram definidos como apenas uma outra pia batismal completa, assim a distinção entre os caráteres do overstruck e os caráteres padrão que estão sendo eliminados.
Terminais mais atrasados de IBM, notàvelmente IBM 3270 as estações de exposição, tiveram um arranjo do teclado alterno que fosse a base para algumas das disposições de teclado modernas do APL no uso hoje. Os terminais melhores, a saber dispositivos de exposição em vez das impressoras, incentivaram o desenvolvimento dos editores de tela cheia melhores, que tiveram uma melhoria measurable na legibilidade da produtividade e do programa.
O APL tem tido por muito tempo uma base pequena e fervent do usuário. Era e é ainda popular em aplicações financeiras e do seguro, nas simulações, e em aplicações matemáticas, frequentemente onde uma solução muda freqüentemente ou onde em uma língua padrão rende a complexidade excessiva. O APL foi usado em uma variedade larga dos contextos e para muitos e finalidades variadas. Um boletim de notícias intitulado “Cit-Quad” dedicado ao APL foi publicado desde os 1970s pela seção de SIGAPL da associação para a maquinaria computando (o Cit-Quad é o nome do caráter do APL usado para a entrada e a saída de texto).
Na maior parte devido ao seu notação de infix e sua ênfase na interação com o computador, APL pode ser um ambiente ideal para a distribuição rápida de interativo Línguas do específico do domínio. Apesar da presença de caráteres não padronizados no caráter do APL - ajuste, ele é possível para um usuário de uma língua domínio-específica executada no APL para escrever os programas simples (ou os certificados) que consistem unicamente nas palavras, nos números, e na pontuação familiar. Até tão tarde quanto os mid-1980s, APL timesharing os vendedores ofereceram as aplicações entregadas no formulário de línguas do específico do domínio. No I. P. Afiado sistema timesharing, um espaço de trabalho chamado MÁGICA 39 acesso oferecido aos dados financeiros e da linha aérea mais (por o tempo) representar graficamente sofisticado e relatar, no formulário de uma língua do específico do domínio. Um outro exemplo é o espaço de trabalho de GRAPHPAK fornecido com o APL2 de IBM; uma versão da demonstração de APL2 e de GRAPHPAK pode downloaded para Windows.
O APL foi usado também em numeroso metaprogramming aplicações. Os dados externos dados que variaram do tempo ao tempo, programas do APL foram usados compôr parcelas ou terminar as seções do código escritas em outras línguas tais como o Fortran, a COBOL, ou o Java. Uma aplicação usou o APL gerar o código do FORTRAN de um modelo de programação linear substancial. Como esta'n, o código do FORTRAN foi pensado para ser demasiado grande ser compreendido confortavelmente por um único ou grupo pequeno dos indivíduos. Entretanto, com esta aproximação, a manutenção rotineira não posed nenhuma barreira. As aproximações similares foram usadas onde as tabelas da consolidação mantiveram a parte externa do APL poderiam imediatamente ser transformadas nos programas de COBOL sizable que executaram as computações necessárias da consolidação. Uma etapa tedious que requeresse previamente diversos man-days, a saber modificações a um programa de COBOL longo, foi eliminada praticamente. As coisas similares foram feitas que na extremidade se emitiram o código de Java.
O interesse no APL declinou firmemente desde os 1980s. Isto era parcialmente devido à falta de um trajeto da migração das execuções performant do mainframe às alternativas low-cost adiantadas do computador pessoal e à disponibilidade de ferramentas computando do end-user da elevado-produtividade como Microsoft Excel e Microsoft Access. Estas são plataformas apropriadas para o que pode ter sido aplicações do APL do mainframe nos 1970s e nos 1980s. Alguns usuários do APL migraram ao Língua de programação de J, que oferece umas características mais avançadas. Última, o declínio era também dívida na parte ao crescimento de MATLAB, Octave do GNU, e Scilab. Estas plataformas po-orientadas computando científicas fornecem uma experiência computando interativa similar ao APL, mas assemelham-se mais a línguas de programação convencionais tais como o Fortran, e usam-se o ASCII padrão.
Notwithstanding este declínio, os achados do APL continuaram o uso em determinados campos, tais como a pesquisa da contabilidade (Exigências de PhD da contabilidade de Stanford)
O APL foi estandardizado pelo ANSI grupo de funcionamento X3J10 e ISO/IEC Grupo de funcionamento técnico comum 3 da subcomissão 22 do comitê 1. A língua do APL do núcleo é especificada em ISO 8485:1989, e a língua prolongada do APL é especificada em ISO/IEC 13751:2001.
|
Custom Search
|
© Copyright 2011 WorldLingo. Todos os direitos reservados.