linguaxe de programación From Wikipedia, the free encyclopedia
A linguaxe Erlang é unha linguaxe de programación concorrente e un sistema de execución que inclúe unha máquina virtual e librerías.
Este artigo (ou sección) está desactualizado(a). A información fornecida mudou ou é insuficiente. |
Este artigo ou sección precisa dunha revisión do formato que siga o libro de estilo da Galipedia. Pode axudar a mellorar este artigo e outros en condicións semellantes. |
Este artigo contén varias ligazóns externas e/ou bibliografía ao fin da páxina, mais poucas ou ningunha referencia no corpo do texto. Por favor, mellora o artigo introducindo notas ao pé, citando as fontes. Podes ver exemplos de como se fai nestes artigos. |
Erlang | |
---|---|
Paradigma | multiparadigma, funcional, reflexiva, concorrente |
Data | 1986 |
Deseñador | Ericsson (Telefonaktiebolaget L. M. Ericsson) |
Última versión | 19.1 |
Tipo de dato | forte, dinámico |
Influído por | Prolog, Smalltalk, PLEX, LISP |
Influíu | F#, Clojure, Rust, Scala, Opa, Reia, Elixir, Dart, Akka |
Licenza | Licenza Apache 2.0 (desde o lanzamento 18.0) |
O subconxunto de programación secuencial de Erlang é un linguaxe funcional, con avaliación estrita, asignación única, e tipado dinámico. Foi deseñado na compañía Ericsson para realizar aplicacións distribuídas, tolerantes a fallos, soft-real-ware e de funcionamento ininterrompido. Proporciona o cambio en quente de código de forma que este pódese cambiar sen parar o sistema. Orixinalmente, Erlang, era unha linguaxe propietaria de Ericsson, pero foi cedido como open source en 1998.
A introdución de Ericsson é, principalmente interpretada pero tamén inclúe un compilador HiPE (só soportado nalgunhas plataformas). A creación e xestión de procesos é trivial en Erlang, mentres que, en moitas linguaxes, os fíos considéranse un apartado complicado e propenso a erros. En Erlang toda concorrencia é explícita.
Erlang recibe o nome de A. K. Erlang. Ás veces pénsase que o nome é unha abreviación de ERicsson LANGuage, debido ao seu uso intensivo en Ericsson. Segundo Bjarne Däcker quen foi o xefe do Computer Science Lab no seu día, esta dualidade é intencional.
Por favor, axuda na mellora deste artigo ou sección ampliando a información que achega. Se cadra, podes atopar máis información na páxina de conversa. |
O código fonte ten este aspecto:
-module(fact). -export([fac/1]). fac(0) -> 1; fac(N) when N > 0 -> N * fac(N-1).
A continuación unha introdución do algoritmo Quicksort.
%% quicksort:qsort(List) %% Ordena unha lista de elementos -module(quicksort). -export([qsort/1]). qsort([]) -> []; qsort([Pivot|Rest]) -> qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ E || E <- Rest, E >= Pivot]).
O exemplo anterior chama recursivamente á función qsort
ata que non hai nada máis para ordenar. A expresión [ X || X <- Rest, X < Pivot]
pódese interpretar como: "Elixe todo X
onde X
é membro de Rest
e X
é menor que Pivot
", resultando nun forma moi sinxela de manipular listas. Como se pode avaliar calquera expresión boleana entre dous tipos de datos diferentes, a avaliación é sinxela: por exemplo, 1 </code<> devolverá
true
.
A maior fortaleza de Erlang é o soporte para concorrencia. Ten un pequeno pero potente conxunto de primitivas para crear procesos e comunicar entre os mesmos. O modelo de procesos baséase en C.A.R. Hoare's Communicating Sequential Processes. Devanditos procesos son a forma principal de estruturar unha aplicación, e pódese crear un gran número deles sen que se degrade o rendemento (chegouse a facer unha proba con 20 millóns de procesos).
O soporte para procesos distribuídos é tamén parte de Erlang. Os procesos pódense crear en nodos remotos, e a comunicación con eles é transparente. É dicir, a comunicación con procesos remotos faise exactamente da mesma xeito que a comunicación con procesos locais.
Exemplos:
Pid = spawn(Mod, Func, Args) % executar a función Func como un novo proceso Pid = spawn(Node, Mod, Func, Args) % executar a función Func nun nodo remoto Pid ! a_message % enviar unha mensaxe ao proceso (asíncronamente) receive % recibir a mensaxe enviada a este proceso a_message -> do_something end.
Erlang foi feito público por Ericsson como código aberto para asegurar a súa independencia dun único vendedor e para dalo a coñecer dunha forma máis ampla. A distribución da linguaxe xunto coas librerías e a base de datos de tempo real (Mnesia) denomínanse Open Telecom Platform (Plataforma aberta de Telecom), ou OTP. Ericsson e outras poucas empresas ofrecen soporte comercial para Erlang.
Desde que se colleu o camiño do código aberto en 1998, Erlang empezou a ser utilizado por varias compañías en todo o mundo, incluíndo Nortel e T-Mobile. De todos os xeitos, Erlang aínda non é unha linguaxe de programación moi estendido.
Na data actual (2006), existe un desenvolvemento activo de Erlang con edicións regulares. Está dispoñible para diversos sistemas operativos de tipo Unix e Microsoft Windows.
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.