Loading AI tools
linguagem de programação Da Wikipédia, a enciclopédia livre
A Wolfram Language (/ˈwʊlfrəm//ˈwʊlfrəm/ WUUL-frəm-frəm) é uma linguagem de programação multiparadigma geral proprietária [1] de alto nível [2] desenvolvida pela Wolfram Research, que serve como a principal linguagem de interface do Mathematica.
Wolfram Language | |
---|---|
Paradigma | Multiparadigma: sistema de redução, funcional, procedural, multidimensional |
Última versão | Wolfram Language 14.1 (Julho de 2024) |
Criado por | Stephen Wolfram / Wolfram Research |
Estilo de tipagem | Dinâmico, forte |
Página oficial | https://www.wolfram.com/language/ |
Foi concebida para ser o mais abrangente possível, com ênfase em computação simbólica, programação funcional e programação baseada em regras.[3] É construída de modo a representar estruturas e dados arbitrários.[3]
A linguagem é bastante extensa, abrangendo vários domínios, muitos deles especializados. Ela inclui, por exemplo, funções integradas para a geração e execução de máquinas de Turing, a criação de gráficos e áudio, a análise de modelos 3D e a resolução de equações diferenciais.
A Wolfram Language fez parte da versão inicial do Mathematica em 1988. [4]
Aspectos simbólicos do engine fazem dele um sistema de álgebra computacional. A linguagem pode realizar integração, diferenciação, manipulações de matrizes e resolver equações diferenciais usando um conjunto de regras. Além disso, a versão inicial introduziu o modelo de notebook e a capacidade de incorporar som e imagens, conforme patente de Theodore Gray . [5]
A Wolfram também adicionou recursos para tarefas mais complexas, como modelagem 3D. [6] Um nome foi finalmente adotado para a linguagem em 2013, quando a Wolfram Research decidiu tornar uma versão do mecanismo de linguagem gratuita para usuários do Raspberry Pi, e eles precisavam encontrar um nome para ela. [7] Foi incluída no pacote de software recomendado que a Raspberry Pi Foundation fornece para iniciantes, o que causou alguma polêmica devido à natureza proprietária da Wolfram Language. [8] Em 2019, foi adicionado um link para tornar as bibliotecas Wolfram compatíveis com o game engine Unity, dando aos desenvolvedores de jogos acesso às funções de alto nível da linguagem. [9] [10]
A sintaxe da Wolfram Language é globalmente semelhante à expressão M do LISP dos anos 1960, com suporte para operadores infixos e chamadas de função de "notação de função".
A Wolfram Language escreve expressões matemáticas básicas usando operadores infixos.
(* Esse é um comentário. *) 4 + 3 (* = 7 *) 1 + 2 * (3 + 4) (* = 15 *) (* Observe que a multiplicação pode ser omitida: 1 + 2 (3 + 4) *) (* Divisões retornam números racionais: *) 6 / 4 (* = 3/2 *)
Chamadas de função são indicadas com colchetes:
Sin[Pi] (* = 0 *) (* Esta é a função para converter números racionais em ponto flutuante: *) N[3 / 2] (* = 1.5 *)
Listas são delimitadas por chaves:
Oddlist={1,3,5} (* = {1,3,5} *)
A linguagem pode se desviar do paradigma de M-expression quando uma alternativa mais amigável para humanos de mostrar uma expressão está disponível:
TeXForm
para expressões em formato tipográfico e InputForm
para entrada de linguagem.@
e a expressão de sufixo //
.'
.Um formatador FullForm
desmembra a entrada:
FullForm[1+2] (* = Plus[1, 2] *)
O Currying é suportado
As funções na Linguagem Wolfram são efetivamente um caso de padrões simples para substituição:
F[x_] := x ^ 0
O :=
é um "operador SetDelayed", para que x não seja imediatamente procurado. x_
é 'syntax sugar' de Pattern[x, Blank[]]
, ou seja, "campo em branco" para qualquer valor substituir x
no restante da avaliação.
Uma iteração da classificação em bolhas é expressa como:
sortRule := {x___,y_,z_,k___} /; y>z -> {x,z,y,k} (* Rule[Condition[List[PatternSequence[x, BlankNullSequence[]], Pattern[y, Blank[]], Pattern[z, Blank[]], PatternSequence[k, BlankNullSequence[]]], Greater[y, z]], List[x, z, y, k]] *)
O operador /;
é "condição", para que a regra se aplique apenas quando y > z
. Os três sublinhados (___
) são uma sintaxe para BlankNullSequence[]
, representando uma sequência que pode ser nula.
O operador ReplaceRepeated //.
pode ser usado para aplicar essa regra repetidamente até que nenhuma mudança adicional ocorra:
{ 9, 5, 3, 1, 2, 4 } //. sortRule (* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *) (* = {1, 2, 3, 4, 5, 9} *)
O sistema de correspondência de padrões também facilita a criação de integração e derivação baseadas em regras. Os trechos a seguir são do pacote de regras Rubi:
(* Regra recíproca *) Int[1/x_,x_Symbol] := Log[x]; (* Power rule *) Int[x_^m_.,x_Symbol] := x^(m+1)/(m+1) /; FreeQ[m,x] && NeQ[m,-1]
A implementação oficial e de referência da Wolfram Language está presente no Mathematica e nos serviços online associados. Esses são de código fechado. No entanto, a Wolfram Research lançou um analisador em C++ da linguagem sob a Licença MIT de código aberto. O livro de referência é de acesso aberto.
Ao longo dos mais de três décadas de existência da Wolfram Language, várias implementações de terceiros de código aberto também foram desenvolvidas. O MockMMA de Richard Fateman, de 1991, é digno de nota na história, tanto por ser a reimplementação mais antiga quanto por ter recebido uma notificação 'cessar e desistir' da Wolfram. Implementações modernas que ainda estão em manutenção até abril de 2020 incluem Symja em Java, expreduce em Golang e o Mathics baseado no SymPy. Essas implementações concentram-se na linguagem principal e no sistema de álgebra computacional que ela implica, não nas características online do "banco de conhecimento" da Wolfram.
Em 2019, a Wolfram Research lançou o Wolfram Engine como freeware, destinado a ser usado como uma biblioteca de programação em software não comercial.
|acessodata=, |arquivodata=
(ajuda)Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.