Top 22 de întrebări și răspunsuri la interviu Erlang (2025)
Iată întrebările și răspunsurile la interviu Erlang pentru studenții, precum și candidații cu experiență pentru a obține jobul visat.
1) Ce este Erlang?
Erlang este un limbaj de programare de uz general și un mediu de rulare. Are suport încorporat pentru concurență, toleranță la erori și distribuție. Erlang este disponibil ca sursă deschisă.
Descărcare gratuită PDF: Întrebări și răspunsuri la interviu Erlang
2) Explicați ce este OTP (Open Telecom Platform)?
OTP este o platformă open source și este un set mare de biblioteci pentru Erlang pentru a face totul, de la compilarea ASN.1 până la furnizarea unui server WWW.
3) Care sunt caracteristicile cheie ale Erlang?
Caracteristicile cheie pentru Erlang sunt că are
- Sintaxă declarativă: Are sintaxă declarativă
- Concurente: Are un model de concurență bazat pe proces
- În timp real: Programează sistemul în timp real
- Operație continuă: Permite funcționarea continuă
- Robust: Pentru detectarea erorilor de rulare are trei constructe în limbaj
- Gestionarea memoriei: Memoria este alocată automat și dezalocată atunci când nu este necesară
- Distribuție: Nu are memorie partajată, sistemele distribuite pot fi construite cu ușurință în erlang
- Integrare: Integrare ușoară a programului scris în altă limbă
4) Numiți tipurile de date pe care le oferă erlang?
Erlang oferă două tipuri de date
- Tipuri de date constante: Aceste tipuri de tipuri de date nu pot fi împărțite în subtipuri mai primitive. Este format din numere și atomi.
- Tipuri de date compuse: Aceste tipuri de tipuri de date sunt utilizate pentru a grupa alte tipuri de tipuri de date. Este format din tuple și liste.
5) Care este comanda de deconectare a nodului în Erlang?
Apelând erlang: disconnect_node (Node) va forța deconectarea nodului.
6) Explicați ce este modulele în Erlang?
Erlang permite organizarea codului în module. Un modul este format din funcții; introduce un domeniu local de funcții (Public și Privat).
7) Menționați cum este stocat modulul în Erlang?
Un nume de modul este stocat într-un fișier numit .erl. Numele de bază al fișierului și numele modulului trebuie să fie aceleași.
8) Explicați ce este șirurile de biți în Erlang?
Pentru a stoca o zonă de memorie netipizată, se folosește un șir de biți care sunt exprimați folosind sintaxa de biți.
9) Explicați ce este potrivirea modelelor?
O potrivire de model are loc atunci când se evaluează un apel de funcție. Prin mecanismul de potrivire a modelelor, variabilele sunt legate de valori.
10) Explicați ce este tipul de date PID?
PID înseamnă Process Identifier și este tipul de date utilizat pentru identificatorii unici de proces care sunt alocați fiecărui proces.
11) Pentru a include un fișier în Erlang, care este comanda folosită?
În două moduri, un fișier poate fi inclus în Erlang
- include (Fișier).
- include_lib (Fișier).
12) Cum este tratată eroarea de rulare în Erlang?
Este posibil să preveniți erorile de rulare și alte excepții să provoace încheierea procesului utilizând Catch sau Try. Catch Expr returnează valoarea expresiei, cu excepția cazului în care apare o excepție în timpul evaluării. Try Exprs este îmbunătățirea catch-ului cu capacitatea de a identifica clasa de excepție și de a alege să o gestioneze pe cea dorită.
13) În Erlang cum este creat „procesul”?
Procesul este creat prin apelarea spawn, iar spawn formează un nou proces și returnează pid-ul.
- Spawn (Modul, Nume, Argumente) -> pid ()
14) Definiți secvența de gardă și care sunt expresiile de gardă valide?
Clauzele funcției Erlang pot fi protejate cu gărzi; o clauză poate fi protejată numai dacă garda ține. Este o secvență de gardieni, separate prin punct și virgulă (;), iar un gard este o secvență de expresii de gardă separate prin virgulă (,). Secvența de gardă este adevărată dacă cel puțin unul dintre paznici este adevărat.
15) Dați lista expresiilor de gardă valide?
Expresiile de gardă valide sunt
- Atom adevărat,
- Alte constante
- Apeluri către BIF-urile specificate
- Comparații de termeni
- Expresii aritmetice
- Expresii booleene
- Expresii de scurtcircuit
16) Explicați cum este trimis și primit mesajul în Erlang?
Pentru trimiterea mesajului, Erlang folosește semnul exclamării (!) ca operator pentru trimiterea unui mesaj. Sintaxa folosită pentru trimiterea unui mesaj este Pid ! Mesaj. Pentru recepționarea mesajului, Erlang folosește Pattern Matching, pentru a livra un mesaj din coada de mesaje se folosește instrucțiunea de primire.
17) Explicați ce este Spawn/ 1l3 și Spawn_link 1l3?
Spawn/ 1l3: Se creează un nou proces și își returnează pid-ul. În coada de planificare a sistemului, noul proces este plasat astfel încât să ruleze ceva timp mai târziu. Spawn_link/1l3: oferă aceeași funcționalitate ca spawn/1l3, dar cu adăugarea unei legături care este creată atomic între procesul nou generat și apelant.
18) Menționați care este sintaxa pentru a scrie Macro-uri în Erlang?
Sintaxa folosită pentru a scrie Macro-uri în Erlang este
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Enumerați macrocomenzile predefinite în Erlang?
Macro-urile predefinite în Erlang sunt
- Modul: Returnează numele modulului curent
- Module_String: Returnează numele modulului curent, sub formă de șir
- Fişier: Returnează numele curent al fișierului
- Linia: Acesta returnează numărul curent al liniei
- Maşină: Acesta returnează numele actual al mașinii, „BEAM”.
20) Explicați ce este o înregistrare și cum puteți defini înregistrările în Erlang?
Pentru stocarea unui număr fix de elemente, a structură de date este folosită care este denumită înregistrare. Expresiile sunt traduse în expresii tuple în timpul înregistrării compilației. Înregistrarea în Erlang este definită de numele înregistrării, urmat de numele câmpurilor înregistrării. Numele înregistrărilor și câmpurilor trebuie să fie atomi.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Menționați care este comanda folosită pentru accesarea câmpului de înregistrare în Erlang?
Expr#Name.Field, această comandă va returna valoarea câmpului menționat în timp ce pentru returnarea poziției câmpului specificat este folosită #Name.Field.
22) Explicați ce este epmd?
epmd este un server de nume mic care este folosit de programele Erlang atunci când stabilesc comunicații Erlang distribuite. Este, de asemenea, menționat ca un Erlang Port Mapper Daemon. Este responsabil pentru maparea numelor de noduri simbolice la adresele mașinii pe care le folosește.
Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)