Faceți cunoștință, Erlang

limbaj de programare Erlang, prima cunoștință.

De ce este limbajul numit Erlang?

lui Erlang adesea menționată ca Erlang / OTP. Aici OTP standuri pentru platforma Telecom deschisă (platformă deschisă de telecomunicații) și este un set de module de bibliotecă care sunt distribuite cu Erlang și abordări pentru dezvoltarea de aplicații. Marea majoritate a aplicațiilor cu software open source, folosind Erlang, cum ar fi ejabberd, CouchDB și MochiWeb, utilizați OTP.

Erlang - este un limbaj de programare general, scop și mediu de rulare, de asemenea. Deși Erlang ca o limbă destul de atractiv în sine, puterea reală se manifestă împreună cu un mediu de rulare (mașină virtuală) și vine cu o bibliotecă C. Luați în considerare principalele caracteristici ale Erlang:

Multe companii comerciale folosesc Erlang în proiectele lor, cum ar fi:

Erlang este, de asemenea, utilizat în proiecte open source, cum ar fi:

  • Ejabberd, serviciu de mesagerie instant care utilizează protocolul XMPP, scrise în Erlang.
  • Erlang a fost folosit pentru a crea o bază de date de stocare de documente CouchDB.

Înainte de începerea studiului Erlang trebuie să se asigure că acesta este instalat în sistemul de operare. Încercați să tastați în linia de comandă ERL:

Pentru Windows Erl apel de la linia de comandă funcționează numai în cazul în care variabila de mediu PATH adăugat la calea programului. În cazul instalării standard pentru comenzi shell pentru Windows Erlang poate fi pornit prin intermediul meniului Start> Toate programele> Erlang OTP.

Erlang coajă pot fi folosite pentru sesiuni interactive și punerea în aplicare a expresiilor lingvistice. Rulați un Erl comandă shell (sau prin meniul Start din Windows așa cum este descris mai sus) și tastați câteva comenzi:

Luați în considerare primele noastre detalii sesiune:

Shell-ul este un instrument puternic atunci când se lucrează cu Erlang. expresii De asemenea acceptate istoricul de intrare de comandă (de exemplu, combinații de taste Ctrl + P și Ctrl + N sunt folosite pentru a naviga prin comenzi introduse înainte), mai multe comenzi de editare și o multitudine de funcții auxiliare, care pot fi vizualizate de ajutor) de comandă (. În plus, shell vă permite să se alăture unui program care rulează Erlang, chiar și la site-uri de la distanță (în acest caz, deoarece există posibilitatea de a utiliza în mod automat o conexiune securizată prin SSH), și multe altele.

Trebuie remarcat faptul că shell vă permite doar exprimarea Erlang, dar nu poate fi folosit pentru a introduce alte constructe lingvistice, pe care le vom analiza în continuare.

Pentru a ieși din shell poate folosi functia oprire construit ():

În cazul în care shell-ul nu răspunde (sau alt mod la ieșire normală), puteți anula prin apăsarea Ctrl + C (sau Ctrl + Break pe Windows), și apoi va fi afișat:

Și acum pentru performanța de întrerupere poate apăsa.

Odată ce am învățat să lucreze în coajă Erlang, ia în considerare constructele lingvistice de bază.

Ca și în multe limbi, expresii aritmetice Erlang urmează regulile obișnuite pentru expresii aritmetice, cum ar fi 1 + 2 * 3 este calculat ca 1 + (2 * 3).

Întregi poate fi de dimensiuni arbitrare, și nu este nevoie să vă faceți griji cu privire la depășire aritmetică. Verificați-l în practică:

În plus, întregul poate fi administrat în diferite sisteme de numerație, folosind formularul de mai jos:

Aici am introdus numărul 10 în zecimal, hexazecimal și sisteme binare.

Puteți utiliza notația începând cu simbolul $ pentru a introduce codurile de caractere:

Numerele în virgulă mobilă pot fi administrate în următoarele formate:

Pentru numerele în virgulă mobilă Erlang utilizează o reprezentare pe 64 de biți care corespunde standardului IEEE 754-1985.

Numele de variabile în Erlang trebuie să înceapă cu o majusculă, la fel ca în exemplul următor:

În primul rând vom atribui valoarea unei variabile X număr 123456789 și apoi valoarea de ieșire a carcasei. După aceasta vom obține valoarea unei variabile și să-l utilizați într-o operație aritmetică.

Dar, în același timp, valoarea Erlang poate fi atribuită doar o singură dată. Continuând acest exemplu:

Ce se întâmplă aici? Strict vorbind, operatorul = în Erlang nu este un operator de atribuire, iar operatorul este o comparație cu un șablon. Aici, în cazul în care variabila în domeniul de aplicare actual nu este încă atribuit o valoare = acționează ca operatorul de atribuire, în caz contrar = compară valoarea cu șablonul.

În comparație cu primul model calculat din partea dreaptă a expresiei, atunci se compară cu modelul de pe partea stângă. In acest ultim exemplu, variabila X este cea mai simplă formă a șablonului. În acest caz, de potrivire de model va avea succes numai dacă valoarea partea dreaptă a expresiei este 123456789:

Atribuirea de unică elimină dezvoltator dintr-o clasă mare de erori legate de valoarea incorectă a variabilei, care altfel ar putea fi modificat undeva între prima și expresia de atribuire în care este utilizat. In plus, acest comportament este coordonat cu notația matematică, unde nici o formulă de forma X = X + 1.

In Erlang atomii sunt folosite pentru a reprezenta constantele non-numerice globale. În comparație cu alte limbi pot fi reprezentate atomi ca elemente în listele de tipul de date. Valoarea atomului este atomul însuși, și singura operație de atomi - această comparație.

Atomii trebuie să înceapă cu o literă mică (așa cum am discutat deja mai sus, variabilele trebuie să înceapă cu o literă de capital, astfel încât acestea să nu se suprapună cu atomii), urmată opțional de litere, cifre, # 64; și _ (punct poate fi utilizat de asemenea în atomi, deși nu este menținută prin extinderea limbii). Când se folosește un singur citat ( „) aproape orice cod poate fi utilizat pentru atom. Exemple de atomi:

Deși Erlang nu are nici un tip Boolean separat, prin convenție utilizată pentru acest atomi adevărați și failse:

Rețineți că a doua linie, am comparat cu cei doi atomi, comparația care se utilizează ordinea lexicografică. Pornind de la al treilea rând, am aplicat o is_boolean funcție încorporată (funcția încorporată, BIF), care returnează true, sau fals în funcție de tipul de argument.

Tuplu - un tip de date compozit, care este utilizat pentru depozitarea articolelor legate într-un singur set. Tuple sunt create folosind acolade și elementele lor sunt separate prin virgule. Ca elemente ale tuplul pot acționa Erlang orice tipuri de date, cum ar fi:

Potrivit acordului, în cazul în care primul element al atomului tuplu, este numit etichetă, deși nu distinge acest tuplu de alte tupluri. Odată cu utilizarea unor astfel de etichete pot crea propriile lor tipuri de date, cum ar fi:

Astfel de etichete facilitează regăsirea informațiilor dintr-un tuplu folosind o operație de comparație cu un șablon:

Aici - este un model mai complex decât cel utilizat de mai sus, este atribuit variabilei X și Y valorile de 10 și 20, respectiv. În linia 4, am folosit o variabilă anonimă (_), care nu se atribuie o valoare și poate fi utilizat de mai multe ori în șablon. În linia 6, atunci când încearcă să utilizeze șablonul, vom obține o eroare, deoarece modelul nu este același lucru ca și tuplul la dreapta de exprimare.

In plus, cu ajutorul funcțiilor încorporate pot lucra cu elemente individuale ale tuplele, de exemplu, pentru a primi elemente ale unui index (pornind de la 1):

Liste ca tuple - un tip de date compozit, care poate conține orice tip de date Erlang, dar spre deosebire de listele tuple sunt procesate mod cu totul diferit și sunt utilizate pentru a stoca date, al căror număr variază. Listele sunt create folosind paranteze drepte, iar elementele sunt separate prin virgule, de exemplu:

Primul element al listei (în acest exemplu - este 1) se numește lista nodurilor și elementelor rămase - lista coada. În procesarea listelor de cea mai eficientă operațiune - este de a lucra cu partea de sus a listei, care este menținută în Erlang următoarea construcție: [top | coadă]. Aici de vârf - un element sau un set de elemente care urmează să fie adăugate sau eliminate din listă, iar coada - lista de elemente pentru a adăuga sau șterge o listă după summit-ul. Uită-te la un exemplu:

Aici ne-am creat o listă, apoi se adaugă ca primele două elemente, care formează o nouă listă Range. Apoi ne-am separat un element din partea de sus a listei, salvați-l ca un șef.

Strict vorbind, nu există nici un tip de date separat Erlang pentru siruri de caractere, siruri de caractere sunt puse în aplicare pur și simplu ca o listă de numere întregi. Pentru șir de lucru mai convenabil pot fi create folosind ghilimele, ca în acest exemplu:

Din aceste exemple putem vedea că liniile și listele de numere întregi - același lucru:

Nu = = compară două elemente.

Pentru a stoca eficient datele binare, se recomandă să utilizați tipul de date binare. Tipul de date binare constă dintr-un set de numere întregi în intervalul 0 la 255 (sau simbolul corespunzător) și este reprezentată utilizând două paranteze unghiulare:

Acest articol a discutat pe scurt principalele caracteristici și conceptele de bază ale limbajului de programare Erlang. Mai multe informații detaliate cu privire la limba poate fi găsită în documentația, situat pe site-ul oficial și alte site-uri care descriu Erlang. Iată câteva site-uri utile:

Articolul următor va lua în considerare secvența de programare în Erlang