Linguaggio Di Programmazione Erlang: Linguaggio di programmazione

Erlang è un linguaggio di programmazione non orientato a contesti specifici ma in grado di lavorare con la programmazione concorrente; può gestire cioè più processi che interferiscono tra loro in esecuzione e su sistemi runtime, vale a dire senza due processi distinti per la compilazione e l'esecuzione ma con un unico processo di modifica ed esecuzione continua.

Erlang
linguaggio di programmazione
Linguaggio Di Programmazione Erlang: Esempi, Altri progetti, Collegamenti esterni
AutoreEricsson
Data di origine1986
Ultima versione26.2.4 (12 aprile 2024)
Paradigmiprogrammazione funzionale
Tipizzazionedinamica
Estensioni comuni.erl, .hrl
Influenzato daProlog, Smalltalk
Ha influenzatoF#, Clojure, Rust, Scala, Opa, Reia, Elixir
Implementazione di riferimento
Implementazioneinterprete
Sistema operativoMultipiattaforma
Linguaen
LicenzaMPL modificata
Sito webwww.erlang.org/

Fu progettato per gestire applicazioni non-stop, distribuite e stabili. Da quando è uscita una versione open-source nel 1998 è stato adottato da varie compagnie multinazionali come la Nortel e T-Mobile.

Il "sottoinsieme sequenziale di Erlang" è un linguaggio funzionale, a valutazione rigida, non polimorfo e con typing dinamico.

Esempi

Il codice ha il seguente aspetto:

 -module(fact).  -export([fac/1]).    fac(0) -> 1;  fac(N) when N > 0 -> N * fac(N-1). 

Qui di seguito una implementazione dell'algoritmo di ordinamento veloce 'quicksort'

 %% quicksort(List)  %% Sort a list of items  -module(quicksort).  -export([qsort/1]).    qsort([]) -> [];  qsort([Pivot|Rest]) ->      qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]). 

L'esempio di cui sopra richiama ricorsivamente la funzione qsort fino a quando non c'è più nulla da ordinare. L'espressione

[ X || X <- Rest, X < Pivot] 

può essere letta come un

    "L'insieme di tutte le X per le quali X è un membro di Rest e X è minore di Pivot",

ciò finisce col divenire un modo molto facile per gestire le liste.

Dal momento che è possibile valutare una qualsiasi espressione booleana tra due differenti tipi, il calcolo è diretto, per esempio 1 < a restituirà true.

In ogni caso è anche possibile generalizzare la funzione vista sopra per ottenere un ordinamento diverso da quello canonico, l'ordine crescente. Infatti, passando come argomento una funzione di confronto, il programmatore potrà invocare più volte la stessa funzione ma con criteri di ordinamento diversi.

Ecco un esempio di codice nel quale si ordina una lista di liste in base alla loro lunghezza:

 -module(listsort).  -export([by_length/1]).    by_length(Lists) ->      F = fun(A,B) when is_list(A), is_list(B) ->              length(A) < length(B)          end,      qsort(Lists, F).     qsort([], _) -> [];   qsort([Pivot|Rest], Smaller) ->       qsort([ X || X <- Rest, Smaller(X, Pivot)], Smaller)       ++ [Pivot] ++       qsort([ Y || Y <- Rest, not(Smaller(Y, Pivot))], Smaller). 

Ciò non sarebbe possibile se il linguaggio non supportasse le funzioni di ordine superiore.

Software che fa uso di Erlang

Tra i programmi che fanno uso di Erlang troviamo:

Altri progetti

Collegamenti esterni

Controllo di autoritàLCCN (ENsh93000031 · GND (DE4324177-3 · J9U (ENHE987007544092105171
Linguaggio Di Programmazione Erlang: Esempi, Altri progetti, Collegamenti esterni  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Tags:

Linguaggio Di Programmazione Erlang EsempiLinguaggio Di Programmazione Erlang Altri progettiLinguaggio Di Programmazione Erlang Collegamenti esterniLinguaggio Di Programmazione ErlangLinguaggio di programmazioneProgrammazione concorrenteRuntime

🔥 Trending searches on Wiki Italiano:

GiapponeAnna Maria SerafiniIl paradiso delle signoreFallout (serie)Matteo SalviniSamuele LongoSerie BDiabolik (film 2021)CanzonissimaDune - Parte duePrima guerra mondialeRubén DouglasAmazonCivitella in Val di ChianaArmistizio di CassibilePablo TrinciaEpisodi de L'attacco dei gigantiCasa CerviBenito Albino DalserAlessandra CelentanoZinédine ZidaneSalò o le 120 giornate di SodomaBombardamenti atomici di Hiroshima e NagasakiMaria Antonietta d'Asburgo-LorenaTriesteClara PetacciM. Night ShyamalanMarco GialliniLingua italianaDiabolik (film 1968)Edoardo VIII del Regno UnitoAlbert Guðmundsson (calciatore 1997)La donna che visse due volteGianluca ScamaccaDavide DevenutoFrancesco d'AssisiAngela LansburySixpmLetizia MorattiGiorgio VI del Regno UnitoSalvatore RiinaDavid BeckhamGigi SabaniEpisodi di American Horror Story (dodicesima stagione)Yacine AdliBaby ReindeerMorte di Benito MussoliniBomba atomicaAmadeus (conduttore televisivo)Law & Order - Unità vittime specialiTotòAntonio RazziWalton GogginsThe Fall Guy (film 2024)Pippo BaudoXNXXBettino CraxiPep GuardiolaOne Day (film)Nazionale di calcio dell'ItaliaPerfect BlueStefano PioliLuciano DarderiInsomnia (film 2002)Jude BellinghamItaliaProvocazione (film 1988)Luca SofriFilippo InzaghiJosé MourinhoVelella velellaThe BeatlesElvis PresleyOcchio, malocchio, prezzemolo e finocchioUnbreakable - Il predestinatoAnn-MargretSerie B 2023-2024Rachele GuidiGuy Ritchie🡆 More