WOLFRAM

Notes aux experts en langage de programmation

Origines

Wolfram Language représente une évolution du langage symbolique développé pour Mathematica pendant plus de trois décennies. Mais il y a beaucoup plus—il ajoute de la connaissance, de la représentation de connaissance et des capacités en langage naturel de Wolfram|Alpha, aussi bien qu'un nouveau méchanisme de déploiement symbolique créé en Wolfram Cloud.

Fondements théoriques

Depuis ses débuts, Wolfram Language a été conçu comme un langage général pour le calcul, basé sur des idées fondamentales sur les systèmes symboliques.

Première application géniale : Maths

Les concepts de Wolfram Language ont été appliqués pour la première fois aux domaines très demandés de calcul mathématique dans Mathematica, avec un succès remarquable pendant plus de trois décennies.

Des millions d'utilisateurs avant même d'être lancé

Dans ses précurseurs dans Mathematica, Wolfram Language comptait déjà plus d'un million d'utilisateurs pendant trois décennies, incluant les plus grands chercheurs du monde, d'innombrables étudiants et bien autres.

Transcendez le matériel informatique

Depuis ses origines, Wolfram Language a été construit pour respecter les principes, sans être affecté par les limitations du matériel informatique disponible (tout est symbolique et de précision infinie, etc.).

Le concept de programmation dans les notebooks

Présenté pour la première fois en Mathematica il y a plus de trois décennies, Wolfram Language vous permet de programmer dans les documents notebook interactifs combinant l'exécution de code avec la sortie et la composition typographique de qualité éditoriale.

Apprenez l'importance de la programmation symbolique

Structures de données, fragments de code, graphiques, documents, interfaces ... Au cours de ces trois dernières décennies qu'il a été en incubation, Wolfram Language a découvert de plus en plus de moyens pour appliquer la programmation symbolique.

Wolfram|Alpha : connexion au monde réel

Wolfram|Alpha a rendu calculable une vaste connaissance du monde réel, de sorte qu'elle puisse être intégrée en Wolfram Language pour faire parler le langage non seulement sur les constructions formelles, mais aussi sur le monde réel.

Des milliards de lignes de code

Des milliards de lignes de code de ce qui est maintenant le code Wolfram Language sont à l'intérieur des systèmes de logiciels à travers le monde, avec des dizaines à l'intérieur de Wolfram|Alpha et Wolfram Language lui-même.

Un langage pour tous les temps

Wolfram Language est assez clair et a été en mesure de maintenir sa compatibilité depuis ses débuts dans la version de Mathematica 1.0 de 1988.

En avance sur son temps pour plus de trois décennies

Wolfram Language est à l'origine de nombreuses nouvelles idées de programmation. Certaines ont influencé les langages développés au cours de ces trois dernières décennies, mais beaucoup sont présentes seulement en Wolfram Language.

Conforme aux buzzword

Wolfram Language est à la fois nouveau et connu : doté d'une longue histoire, mais rempli de nouvelles idées. Il a beaucoup d'attributs qui correspondent bien aux buzzword modernes des langages de programmation communs, ainsi que de nombreux attributs qui ne sont pas familiers à d'autres langages de programmation.

Wolfram Language est...

(entre autres)

Basé dans la connaissance

(Notre propre buzzword) Comme l'un des principes fondamentaux, Wolfram Language contient une large connaissance intégrée sur les algorithmes et sur le monde.

Symbolique

En Wolfram Language, tout est symbolique incluant code, données, images, documents, interfaces, programmes, etc.

Interactif

Le code de Wolfram Language peut être exécuté de façon interactive comme un dialogue REPL à base de documents entre l'utilisateur et le système.

Fonctionnel

En raison de son caractère symbolique, Wolfram Language supporte une forme de programmation fonctionnelle étendue basée sur des transformations généralisées.

Haut niveau

Wolfram Language, avec son caractère et le principe de l'automatisation maximale basée sur la connaissance, pourrait bien être le langage de niveau plus élevé du monde.

Déclaratif

Wolfram Language incorpore une forme extrème du concept déclaratif, avec des superfonctions hautement automatisées pour l'accomplissement des objectifs spécifiques de haut niveau.

"Batteries inclues"

Il est plus comme "centrale d'énergie incluse": Wolfram Language a une vaste gamme d'algorithmes et de connaissances intégrés, tous mis en place pour être immédiatement interopérables.

Homoiconique

En raison de son caractère symbolique, la relation code=données est fondamentale en Wolfram Language.

Orienté aux motifs

Le filtrage par motif sophistiqué des expressions symboliques est une caractéristique essentielle de Wolfram Language.

Métaprogrammable

En raison de son caractère symbolique, Wolfram Language peut manipuler immédiatement du code non seulement avec macros mais aussi avec une puissance complète du langage.

Concis

Avec toutes ses fonctionnalités intégrées et primitifs minutieusement choisis, les programmes en Wolfram Language sont généralement très courts par rapport à ce qu'ils accomplissent.

Basé dans les expressions

En Wolfram Language tout (données, code, etc.) est représenté comme une expression symbolique en forme d'arbre contenant une valeur.

Réflectif

Le caractère symbolique de Wolfram Language facilite une introspection complète.

Polymorphique

Spécifier des fonctions en utilisant le filtrage par motif permet à Wolfram Language d'exprimer immédiatement un comportement profondément polymorphe.

Interprété de façon dynamique

En Wolfram Language, tout est expression symbolique, et chaque expression symbolique a une tête qui définit automatiquement son comportement.

Applicatif

En Wolfram Language, les programmes peuvent être considérés comme des séquences de transformations symboliques aux expressions symboliques immuables.

Concaténatif

En raison du fait que Wolfram Language est symbolique, les programmes peuvent immédiatement être construits comme des enchaînements de parties significatives individuellement.

Compatible avec DRY

La liberté avec laquelle le code peut être factorisé dans le paradigme symbolique fonctionnel de Wolfram Language facilite la programmation de façon «ne vous répétez pas».

Activation de DSL

Le caractère symbolique de Wolfram Language facilite la création de langages spécifiques au domaine au sein du langage et beaucoup d'entre eux sont déjà intégrés (regex, graphiques, interfaces, déploiement, etc.).

Connaissance représentationnelle

Avec sa large connaissance intégrée et sa structure symbolique, Wolfram Language est idéal pour représenter la connaissance y la rendre calculable.

Sémantique

Wolfram Language contient une large représentation intégrée des entités et des constructions du monde réel.

Pour les maths

Wolfram Language a de loin du monde la plus large et la plus profonde couverture de calcul mathématique intégré.

Capable de précision arbitraire

Partout en Wolfram Language, les nombres peuvent avoir toute précision ou longueur.

Symbolique-numérique

Wolfram Language détient le support pour à la fois le calcul symbolique et numérique, et beaucoup de ses algorithmes mélangent ce deux approches.

Capable de faire des requêtes

En Wolfram Language, toutes les données sont représentées par des expressions symboliques qui permettent l'interrogation uniforme en utilisant des constructions fonctionnelles de haut niveau.

Orienté aux objets

Wolfram Language supporte une alternative symbolique puissante à la programmation traditionnelle orientée vers les objets.

Réactif

Wolfram Language implémente la programmation fonctionnelle réactive pour supporter la construction des interfaces utilisateurs dynamiques complexes déclarativement.

Envoi multiple

Le filtrage par motif symbolique de Wolfram Language permet l'envoi immédiat de tout argument d'une fonction ou toute partie d'une expression.

Expressif

La conception minutieuse et les vastes fonctionnalités intégrées de Wolfram Language facilitent l'expression des idées de calcul de façon claire dans le langage.

Lisible

La grande emphase mise sur les noms bien choisies et les structures rend le code de Wolfram hautement lisible.

Centré dans les documents

En Wolfram Language, le code n'est pas bloqué dans le texte ASCII, et peut de préférence être donné dans des notebooks riches.

Instruis

En Wolfram Language, les programmes exécutables peuvent être écrits en tant que des notebooks richement structurés.

Scriptable

Wolfram Language peut être utilisé pour écrire des commandes d'opérations externes dans un vaste éventail d'environnements et de langages.

Langage naturel

Construit sur la même technologie comme Wolfram|Alpha, Wolfram Language permet l'entrée de langage naturel, à la fois comme une partie des programmes et leurs fonctionnalités.

Compilé en JIT

Souvent, Wolfram Language utilise de manière transparente la compilation juste-à-temps pour ses propres machines virtuelles pour optimiser les performances et donner le meilleur des deux opérations interprétées et compilées.

Parallélisable

Wolfram Language a une fonctionnalité intégrée de calcul parallèle, tant pour les machines simples et pour les réseaux potentiellement hétérogènes.

Basé en cloud

Wolfram Language exécute en cloud et supporte beaucoup de formes du calcul basé en cloud aussi bien que l'exécution locale.

Orienté dans le modèle client-serviteur

L'interface interactive de Wolfram Language est faite pour communiquer via le protocole symbolique de WolframLink avec un ou plusieurs kernels de calcul.

Indépendent des plateformes

Wolfram Language est le même sur toutes les plateformes standard, locales et en cloud.

Échangeable à chaud

Puisque Wolfram Language est interprété, et aussi son déploiement symbolique, le code peut être interrogé, débogué et modifié à toute étape dans son exécution.

FFI activé

Wolfram Language a un riche support pour des interfaces de fonction étrangères à tous les niveaux.

Interopérable

Intégré à l'intérieur Wolfram Language est l'habilité d'interagir avec d'autres langages et avec ses données dans des centaines de formats.

Sécurisé

Wolfram Language n'expose pas les constructions de bas niveau tels que les pointeurs et l'allocation de mémoire, de sorte que les grandes classes de bugs soient évitées.

Persistant

Puisque tout en Wolfram Language (code, données, graphiques, interfaces, etc.) est représenté comme une expression symbolique, il peut être sérialisé de façon immédiate pour le stockage permanent.

Permet Monkey Patch

En Wolfram Language, il y a un méchanisme uniforme pour redéfinir le fonctionnement de presque tout.

Immuable

En Wolfram Language, tout est une expression symbolique qui représente sa propre valeur avec seulement des fonctions spécifiques ayant des effets secondaires de la modification des expressions "à la place."

Stable

Wolfram Language est une évolution compatible du langage dans Mathematica, qui a maintenu la rétrocompatibilité presque parfaite pendant plus de trois décennies.