WOLFRAM

Informações para Especialistas em Linguagem de Programação

Origens

A Wolfram Language em primeiro lugar é uma evolução da linguagem simbólica desenvolvida para o Mathematica ao longo de mais de três décadas. Mas é muito mais do que isso, agregando conhecimento, representação de conhecimento e recursos da linguagem natural do Wolfram|Alpha, assim como o novo mecanismo de implementação simbólica criado com a Wolfram Cloud.

Fundamentos teóricos

Desde seus primeiros estágios, a Wolfram Language foi concebida como uma linguagem geral para computação, baseada em ideias fundamentais sobre sistemas simbólicos.

Primeira aplicação chave : Matemática

Os conceitos da Wolfram Language foram aplicados primeiramente em uma área altamente exigente de cálculo matemático no Mathematica, com sucesso notável ao longo de mais de três décadas.

Milhões de usuários antes mesmo de sua existência

Durante seu início no Mathematica, a Wolfram Language teve milhões de usuários por mais de três décadas, incluindo muitos dos principais pesquisadores do mundo, inúmeros estudantes e diversos usuários.

Transcendendo o hardware

Desde suas origens, a Wolfram Language foi criada para seguir princípios, sem ser afetada pelas limitações do hardware disponível (tudo simbólico, precisão infinita, etc.).

O conceito de programação em notebooks

Pioneira no Mathematica há mais de três décadas, a Wolfram Language permite que você programe em documentos notebooks interativos que combinam a execução do código com output e composição tipográfica de qualidade editorial.

Aprendendo a importância da programação simbólica

Estrutura de dados, fragmentos de código, gráficos, documentos, interfaces... Tudo isto vem sendo desenvolvido ao longo de três décadas. A Wolfram Language descobriu muitas formas de aplicar a programação simbólica.

Wolfram|Alpha: Conexão com o mundo real

O Wolfram|Alpha torna computável o enorme conhecimento do mundo real, para que possa ser integrado na Wolfram Language para fazer a linguagem falar não apenas sobre construções formais, mas também sobre o mundo real.

Bilhões de linhas de códigos

Bilhões de linhas de código que constituem hoje em dia o código da Wolfram Language estão dentro de sistemas de softwares ao redor do mundo; com dezenas de milhares dentro do Wolfram|Alpha e da própria Wolfram Language.

Uma linguagem atemporal

A Wolfram Language é tão simples que tem sido capaz de manter sua compatibilidade desde sua origem no Mathematica 1.0 de 1988.

À frente de seu tempo por mais de três décadas

A Wolfram Language originou novas ideias de programação, algumas delas tem influenciado as linguagens desenvolvidas nas últimas três décadas, mas muitas delas permanecem ainda na Wolfram Language.

Muito além das palavras que estão na moda

A Wolfram Language é velha e nova ao mesmo tempo: com uma longa história, mas cheia de ideias novas. Possui muitos atributos que se enquadram no vocabulário que está na moda de linguagem de programação moderna, assim como muitos atributos que não são familiares em outras linguagens de programação.

A Wolfram Language é...

(entre outras coisas)

Baseada em conhecimento

(Nossa palavra que virou moda) Como um de seus princípios fundamentais, a Wolfram Language tem um vasto conhecimento de algoritmos e do mundo integrado.

Simbólica

Na Wolfram Language, tudo (código, dados, imagens, documentos, interfaces, programas, etc.) é uma expressão simbólica.

Interativa

O código da Wolfram Language pode ser executado de forma interativa como um diálogo REPL baseado em documentos, entre o usuário e o sistema.

Funcional

Com seu caráter simbólico, a Wolfram Language suporta uma forma estendida de programação funcional baseada em transformações generalizadas.

De alto nível

A Wolfram Language, por estar baseada em conhecimento e por seu princípio de máxima automatização, pode ser a linguagem de programação de mais alto nível do mundo.

Declarativa

A Wolfram Language incorpora uma forma extrema do conceito declarativo, com superfunções altamente automatizadas para alcançar metas específicas de alto nível.

"Baterias incluídas"

É como se fosse uma "usina de energia incluída": a Wolfram Language posssui uma vasto e coerente arranjo de algoritmos e conhecimento incorporados, todos prontos para serem imediatamente interoperáveis.

Homoicônica

Com o seu caráter simbólico, a relação código=dados é fundamental na Wolfram Language.

Baseada em padrões

A sofisticada associação de padrões de expressões simbólicas é uma característica fundamental da Wolfram Language.

Meta-programável

Com seu caráter simbólico, a Wolfram Language manipula códigos de forma imediata, não só com macros, mas com todo o poder da liguagem.

Concisa

Com todas suas funcionalidades integradas, e primitivos selecionados cuidadosamente; os programas na Wolfram Language são tipicamente muito curtos em relação ao que eles podem fazer.

Baseada em expressões

Tudo na Wolfram Language (dados, código, etc.) está representado como uma expressão simbólica com estrutura de árvore que tem um valor.

Reflexiva

O caráter simbólico da Wolfram Language permite que ela seja introspectiva.

Polimórfica

Especificar funções usando a associação de padrões permite que a Wolfram Language expresse imediatamente comportamento polimórfico profundo.

Interpretada de forma dinâmica

Na Wolfram Language, tudo é uma expressão simbólica, e toda expressão simbólica tem uma cabeça que automaticamente define seu comportamento.

Aplicativa

Na Wolfram Language, os programas podem ser considerados como a aplicação de sequências de transformações simbólicas em expressões simbólicas imutáveis.

Concatenativa

Como a Wolfram Language é simbólica, os programas podem ser construídos de forma imediata como concatenações de partes individuais significativas.

Favorável ao princípio DRY

A liberdade com que o código pode ser fatorizado no paradigma simbólico funcional da Wolfram Language facilita programar de acordo com o princípio "não se repita".

Criadora de DSLs

O caráter simbólico da Wolfram Language faz com que seja fácil criar linguagens de domínio específico dentro da linguagem; e muitas já estão incorporadas (regex, gráficos, interfaces, implementação, etc.)

Conhecimento representacional

Com seu vasto conhecimento incorporado e estrutura simbólica, a Wolfram Language é ideal para representar conhecimento e fazê-lo computável.

Semântica

A Wolfram Language tem uma ampla variedade de representações incorporadas de entidades do mundo real e construções.

Matemática

A Wolfram Language tem de longe a maior e mais profunda cobertura incorporada de computação matemática do mundo.

É capaz de calcular com precisão arbitrária

Na Wolfram Language, os números podem ter qualquer precisão e tamanho.

Simbólica-Numérica

A Wolfram Language tem um grande suporte para a computação numérica e simbólica, e muitos de seus algoritmos combinam os dois enfoques.

Capaz de fazer consultas

Na Wolfram Language, são representados por expressões simbólicas que permitem consultas uniformes usando construções funcionais de alto nível.

Orientada a objetos

A Wolfram Language dá suporte a uma poderosa alternativa simbólica para a programação tradicional orientada a objeto.

Reativa

A Wolfram Language implementa programação funcional reativa para dar suporte à construção de interfaces de usuário dinâmicas complexas de forma declarativa.

Envio múltiplo

A associação de padrões simbólicos da Wolfram Language permite enviar de forma imediata qualquer argumento de uma função ou qualquer parte de uma expressão.

Expressiva

O design cuidadoso e a ampla funcionalidade incorporada da Wolfram Language facilita a expressão de idéias computacionais de forma clara na linguagem.

Legível

Ênfase em nomes e estruturas bem escolhidas faz com que o código da Wolfram Language seja altamente legível.

Centrada em documentos

Na Wolfram Language, o código não fica preso em texto ASCII, em vez disso podem ser representados em notebooks.

Instruída

Na Wolfram Language, os programas executáveis podem ser escritos em notebooks ricamente estruturados.

Programável

A Wolfram Language pode ser usada para escrever comando de operações externas em uma variedade de ambientes e linguagens.

Linguagem natural

Contruída sobre a mesma base do Wolfram|Alpha, a Wolfram Language permite input de linguagem natural, tanto como parte dos programas como em sua própria funcionalidade.

Compilada em JIT

A Wolfram Language usa sem problemas a compilação em tempo de execução em seus próprios equipamentos virtuais para otimizar o desempenho e proporcionar o melhor da operação interpretativa e de compilação.

Paralelizável

A Wolfram Language possui a funcionalidade de computação paralela incorporada, tanto para equipamentos individuais como para redes potencialmente heterogêneas.

Baseada na nuvem

A Wolfram Language pode ser executada na nuvem e dá suporte a muitas formas de computação baseada na nuvem, além de ser executada localmente.

Orientada no modelo cliente-servidor

A interface interativa da Wolfram Language está configurado para se comunicar através do WSTP (Wolfram Symbolic Transfer Protocol) om um ou mais kernels computacionais.

Independente de plataformas

A Wolfram Language é a mesma em todas as plataformas padrão, local e na nuvem.

Hot-swap

Quando a Wolfram Language é interpretada, e sua implementação é simbólica, o código pode ser interrogado, depurado e modificado em qualquer etapa de sua execução.

FFI ativada

A Wolfram Language tem um amplo suporte para interfaces de função externa que operam em vários níveis.

Interoperável

A habilidade de interagir com outras linguagens e com dados em centenas de formatos está incorporada na Wolfram Language.

Segura

A Wolfram Language não expõe construções de baixo nível tais como indicadores e alocação de memória, evitando assim muitas classes de erros.

Persistente

Como na Wolfram Language tudo (código, dados, gráficos, interfaces, etc.) é representado com uma expressão simbólica, eles podem ser serializados de forma imediata para o armazenamento persistente.

Monkey Patch

Na Wolfram Language, existe um mecanismo uniforme para redefinir a operação de quase tudo.

Imutável

Na Wolfram Language, tudo é uma expressão simbólica que representa seu próprio valor, com apenas funções específicas produzindo efeitos secundários de modificar expressões "no local".

Estável

A Wolfram Language é uma evolução compatível da linguagem no Mathematica, o qual tem mantido uma compatibilidade quase perfeita com versões anteriores por mais de três décadas.