Elixir (limbaj de programare)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Elixir
limbaj de programare
Logo oficial Elixir.png
Logo-ul oficial al limbajului de programare Elixir.
Autor José Valim , colaboratori pe GitHub
Data de origine 24 mai 2012 ; Acum 9 ani (v0.5.0)
Ultima versiune 1.9.0 [1] (24 iunie 2019 ; acum 2 ani )
Utilizare scripting , scop general
Paradigme concurente , funcționale
Tastare dinamic , puternic
Specificații lingvistice Specificația limbajului Elixir
Extensii comune ex și ex
Influențată de Erlang , Ruby , Clojure
Implementare referință
Licență Licență Apache 2.0 [2]
Site-ul web elixir-lang.org/

Elixir este un limbaj de programare funcțional și concurent al cărui cod compilat este interpretat de mașina virtuală Erlang (BEAM). Acesta îl folosește cu precizie pentru a oferi aplicații distribuite, tolerante la erori și (aproape) în timp real, dar și pentru a-l extinde către suportul meta-programării prin macrocomenzi, polimorfism și protocoale. [3]

Istorie

Creatorul limbajului, José Valim, la ElixirConf 2014
Programator de computer Dave Thomas la ElixirConf 2014

Creatorul limbajului de programare Elixir este José Valim . Limbajul de programare este un proiect de cercetare și dezvoltare al Plataformatec . Scopul este de a permite o mai mare extensibilitate și productivitate a Erlang VM , păstrând în același timp compatibilitatea cu instrumentele și ecosistemul Erlang în sine. [4]

Nașterea Elixir a fost motivată de faptul că capacitatea de procesare a procesoarelor este în continuă creștere, ceea ce a dat naștere la mai multe procesoare de bază și că ecosistemul Erlang , inclusiv mașina sa virtuală , profită din plin de acest tip de multi-procesor arhitectură, astfel încât un program care rulează să poată fi împărțit într-o serie de microprocese paralele. Elixir s-a născut pentru a depăși deficiențele lui Erlang în unele paradigme și pentru a pune la dispoziție unele abordări de programare neadmise de Erlang , cum ar fi meta-programarea și polimorfismul .

Aspecte tehnice

Elixir are un sistem de gestionare a pachetelor , macrocomenzi , un instrument ușor de utilizat care automatizează dezvoltarea și un sistem de codificare Unicode . [5] Deoarece Elixir este un limbaj care rulează pe mașina virtuală Erlang , acesta câștigă toate avantajele oferite de maturitatea VM și poate utiliza bibliotecile Erlang existente, fără a penaliza performanța. [5] Spre deosebire de Erlang , Elixir are operatorul de țevi . [5] Sintaxa lui Elixir, spre deosebire de cea a lui Erlang , este mai familiară dezvoltatorilor Ruby . [5]

Caracteristici

Exemple

Următoarele exemple pot fi rulate într-un shell IEx (înseamnă Interactive Elixir) sau pot fi salvate într-un fișier și rulate de pe linia de comandă tastând elixir <filename> .

Hello world - Tipărește șirul de caractere Hello world la ieșirea standard:

 IO. pune „Hello World!”

Operații pe liste - Dintre elementele care aparțin listei originale, sunt selectate doar cele impare (obținute în cazul în care restul împărțirii lor la 2 este egal cu 1) și se creează o listă care conține aceste elemente pătrate.

 pentru n <- [ 1 , 2 , 3 , 4 , 5 ], rem ( n , 2 ) == 1 , faceți : n * n
# => [1, 9, 25]

Potrivire de model

 [ 1 , a ] = [ 1 , 2 ]
# 'a' este acum egal cu 2

{ : ok , [ hello : a ]} = { : ok , [ hello : "world" ]}
# „a” este acum egal cu „lume”

Formulare

 defmodule Fun do
  def fib ( 0 ), faceți : 0
  def fib ( 1 ), faceți : 1
  def fib ( n ) do 
    fib ( n - 2 ) + fib ( n - 1 )
  Sfârșit
Sfârșit

Invocare cod nativ Erlang - Exemplu de utilizare a unei biblioteci Erlang (biblioteca este inet_res ); în momentul scrierii acestui paragraf, adresa IP a gazdei indicată de URL - ul furnizat ca parametru de intrare pentru metodă (cea a secțiunii poloneze a Wikipedia ) era 91.198.174.192

 : inet_res . căutare ( „pl.wikipedia.org” ,: Held, a)
# => [{91, 198, 174, 192}]

Proiecte Elixir remarcabile

Notă

  1. ^ https://github.com/elixir-lang/elixir/releases/tag/v1.9.0
  2. ^ https://github.com/elixir-lang/elixir/blob/master/LICENSE
  3. ^ a b c d e f José Valim, Elixir , pe site-ul oficial Elixir , José Valim, 24 aprilie 2012. Accesat la 24 aprilie 2012 (arhivat din original la 18 aprilie 2012) .
  4. ^ Elixir - O abordare modernă a programării pentru Erlang VM , pe vimeo.com . Adus la 17 februarie 2013 .
  5. ^ a b c d Lau Taarnskov, Elixir - Următorul mare limbaj pentru web , pe Creative Deletion , Lau Taarnskov, 19 aprilie 2015. Adus 19 aprilie 2015 (arhivat din original la 20 aprilie 2015) .
  6. ^ Peter Minten, Elixir's Enumerable , pe Un cazan de pietre albe și negre, blogul personal al lui Peter Minten, Peter Minten, 7 septembrie 2014. Accesat la 7 septembrie 2014 (arhivat din original la 6 septembrie 2014) .

Bibliografie

  • ( EN ) Wolfgang Loder, Erlang and Elixir for Imperative Programmers , prima ediție, capitolul 16: „Conceptele de structurare a codurilor”, secțiunea „Model de actor”, Leanpub, 12 mai 2015, p. 53.
  • ( RO ) Dave Thomas, Elixir de programare :: Funcțional> Concurent> Pragmatic> Distracție , prima ediție, The Pragmatic Bookshelf, 2014, p. 280, ISBN 978-1937785581 .

Alte proiecte

linkuri externe

Controlul autorității LCCN ( EN ) sh2015000669
Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă de software gratuit