J (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
 Nota: Não confundir com J♯, nem com Visual J++.
J
Criado por Kenneth E. Iverson, Roger Hui
Influenciada por APL
Plataforma Multiplataforma (Windows, GNU/Linux, Mac OS X)
Licença: GPLv3
Página oficial www.jsoftware.com

J é uma linguagem de programação, desenvolvida no início dos anos 90 por Kenneth E. Iverson e Roger Hui.[1][2][3]

Após se aposentar, Iverson voltou-se a seu principal objetivo com APL: desenvolver uma notação simples, precisa e executável para o ensino de um ampla gama de assuntos. Determinou que a ferramenta essencial deveria ser um dialeto de APL com quatro requerimentos:[4]

  • Estar disponível como shareware e ter custo acessível a estudantes e escolas;
  • Poder ser impressa em impressoras comuns;
  • Rodar em uma ampla variedade de computadores; e
  • Proporcionar a simplicidade e generalidade do mais recente pensamento em APL.

Com basicamente os mesmos objetivos de APL e o mesmo idealizador, J usa um teclado e sistema de caracteres comum.

Diferentemente da maioria das linguagens de programação que têm suporte para orientação a objeto, o esquema flexível de namespaces do J (em que todo nome existe em um local específico) pode ser usado efetivamente como um framework para as programações orientadas a objeto baseadas tanto em classes quanto em protótipos.

Desde de Março de 2011, J tornou-se um software livre e de código aberto sob a licença GPLv3. Também se pode comprar o código fonte para uso comercial sob uma licença negociada.[5]

Exemplos[editar | editar código-fonte]

O Programa Olá Mundo em J é:

'Olá, mundo!'

O exemplo seguinte calcula a média aritmética dos elementos de um vetor.

A função media é definida =: como o somatório +/ dividido % pelo número de elementos #:

media =: +/%#
media 2 2 3 3    NB. retorna 2.5

Para somar 1 aos elementos do vetor y que forem pares:[4]

y + 0 = 2 | y

Para dobrar todos os elementos de y que forem pares:

y * 1 + 0 = 2 | y

Uma de diversas[5] maneiras de se gerar uma matriz identidade:

MI =: e. @ i.   NB. Define função MI
MI 5            NB. Gera matriz identidade 5×5

Estrutura de controle[editar | editar código-fonte]

J fornece estruturas de controle similares às de outras linguagens procedurais. Algumas instruções proeminentes em cada categoria incluem:[6]

  • assert.
  • break.
  • continue.
  • for.
  • goto_label.
  • if. else. elseif.
  • return.
  • select. case.
  • throw.
  • try. catch.
  • while. whilst.

Referências

  1. Iverson, K.E. «A Personal View of APL» (em inglês). Consultado em 5 de Março de 2016. Arquivado do original em 12 de agosto de 2004 
  2. [1] WHITNEY, Arthur. (Código-fonte do primeiro interpretador de J, escrito em linguagem C.) 1989.
  3. [2] HUI, Roger K.W. An Implementation of J. Presented at the Jsoftware Conference 2012, 2012-07-23.
  4. [3] Iverson. A Personal View of APL. Introduction.
  5. «J Source» (em inglês). J Software. Consultado em 5 de Março de 2016 
  6. «Control Structures» (em inglês). J Software. Consultado em 5 de Março de 2016 
Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.