Concept

Erlang (langage)

Résumé
vignette|300px|LYME et LYCE sont basés sur Erlang et offrent des alternatives à LAMP. Erlang est un langage de programmation, supportant plusieurs paradigmes : concurrent, temps réel, distribué. Son cœur séquentiel est un langage fonctionnel à évaluation stricte, affectation unique, au typage dynamique fort. Sa couche concurrente est fondée sur le modèle d'acteur. Il possède des fonctionnalités de tolérance aux pannes et de mise à jour du code à chaud, permettant le développement d'applications à très haute disponibilité. Erlang est conçu pour s'exécuter sur une machine virtuelle spécifique appelée BEAM. Il a été créé par Ericsson, qui l'utilise dans plusieurs de ses produits, tels que le commutateur ATM AXD 301. Initialement propriétaire, il est publié sous licence Open Source depuis 1998. Il est également utilisé par d'autres entreprises développant des logiciels liés aux réseaux de télécommunications, comme T-Mobile, Nortel ou encore plus récemment WhatsApp pour de la messagerie instantanée.Il est aussi utilisé pour écrire le serveur XMPP ejabberd, la base de données NoSQL CouchDB, le serveur HTTP Yaws ainsi que le logiciel de modélisation 3D Wings 3D. Il possède de nombreuses bibliothèques incluses dans la distribution de base et regroupées sous le nom de OTP (Open Telecom Platform). OTP représente le framework standard de l'univers Erlang, la plupart des programmeurs l'utilisant comme base d'interopérabilité. Il peut s'interfacer avec d'autres langages comme Java ou C++. Le nom « Erlang » fait référence au mathématicien Agner Erlang, tout en faisant figure de mot valise de l’expression Ericsson Language. Comme tous les langages fonctionnels, Erlang repose beaucoup sur la récursivité. En Erlang, la fonction factorielle peut s'écrire sous une forme récursive, comme suit : module(fact). % le nom du fichier est fact.erl (fichier et module doivent porter le même nom) export([fac/1]). % exporte (publiquement) la fonction fac, d'arité 1 (un seul argument) fac(0) -> 1; % cas de base : notez le point-virgule qui signifie « ou » fac(N) when N > 0 -> N*fac(N-1).
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.