Le 22 migliori domande e risposte all'intervista a Erlang (2025)
Ecco le domande e le risposte al colloquio di Erlang per le matricole e i candidati esperti per ottenere il lavoro dei loro sogni.
1) Cos'è l'Erlang?
Erlang è un linguaggio di programmazione generico e un ambiente runtime. Ha integrato il supporto per la concorrenza, la tolleranza agli errori e la distribuzione. Erlang è disponibile come open source.
Download gratuito del PDF: domande e risposte all'intervista a Erlang
2) Spiegare cos'è l'OTP (Open Telecom Platform)?
OTP è una piattaforma open source e comprende un ampio insieme di librerie per consentire a Erlang di fare qualsiasi cosa, dalla compilazione di ASN.1 alla fornitura di un server WWW.
3) Quali sono le caratteristiche principali di Erlang?
La caratteristica principale di Erlang è che ha
- Sintassi dichiarativa: Ha una sintassi dichiarativa
- Concorrente: Ha un modello di concorrenza basato sui processi
- Tempo reale: Programma il sistema in tempo reale
- Operazione continua: Permette il funzionamento continuo
- Robusto: Per rilevare gli errori di runtime ha tre costrutti nel linguaggio
- Gestione della memoria: La memoria viene allocata automaticamente e deallocata quando non è necessaria
- Distribuzione: Non ha memoria condivisa, i sistemi distribuiti possono essere facilmente costruiti in erlang
- Integrazione: Facile integrazione di programmi scritti in altre lingue
4) Nominare i tipi di dati forniti da Erlang?
Erlang fornisce due tipi di dati
- Tipi di dati costanti: Questi tipi di tipi di dati non possono essere suddivisi in sottotipi più primitivi. È composto da numeri e atomi.
- Tipi di dati composti: Questi tipi di tipi di dati vengono utilizzati per raggruppare altri tipi di tipi di dati. Consiste di tuple ed elenchi.
5) Qual è il comando per disconnettere il nodo in Erlang?
Chiamando erlang: disconnessione_node (Nodo) forzerà la disconnessione del nodo.
6) Spiegare cosa sono i moduli in Erlang?
Erlang consente di organizzare il codice in moduli. Un modulo è costituito da funzioni; introduce un ambito locale di funzioni (Pubblico e Privato).
7) Menzionare come viene archiviato il modulo in Erlang?
Il nome di un modulo è memorizzato in un file denominato .erl. Il nome base del file e il nome del modulo devono essere gli stessi.
8) Spiegare cosa sono le stringhe di bit in Erlang?
Per memorizzare un'area di memoria non tipizzata, viene utilizzata una stringa di bit espressa utilizzando la sintassi bit.
9) Spiegare cos'è il Pattern Matching?
Una corrispondenza del modello si verifica durante la valutazione di una chiamata di funzione. Attraverso il meccanismo di corrispondenza dei modelli, le variabili sono legate ai valori.
10) Spiegare cos'è il tipo di dati PID?
PID significa identificatore di processo ed è il tipo di dati utilizzato per gli identificatori di processo univoci assegnati a ogni processo.
11) Per includere un file in Erlang qual è il comando utilizzato?
Un file può essere incluso in Erlang in due modi
- includere (File).
- include_lib (File).
12) Come viene gestito l'errore di runtime in Erlang?
È possibile impedire che errori di runtime e altre eccezioni causino l'interruzione del processo utilizzando Catch o Try. Catch Expr restituisce il valore di espressione a meno che non si verifichi un'eccezione durante la valutazione. Try Exprs è il potenziamento di catch con la possibilità di identificare la classe di eccezione e scegliere di gestire quella desiderata.
13) A Erlang come viene creato il “processo”?
Il processo viene creato chiamando spawn e spawn forma un nuovo processo e restituisce il pid.
- Spawn (Modulo, Nome, Argomenti) -> pid ()
14) Definire la sequenza di guardia e quali sono le espressioni di guardia valide?
Le clausole funzionali Erlang possono essere protette con protezioni; una clausola può essere tutelata solo se la guardia regge. È una sequenza di guardie, separate da punto e virgola (;), e una guardia è una sequenza di espressioni di guardia separate da virgola (,). La sequenza delle guardie è vera se almeno una delle guardie è vera.
15) Fornire l'elenco delle espressioni di guardia valide?
Le espressioni di guardia valide sono
- Atomo vero,
- Altre costanti
- Chiamate ai BIF specificati
- Confronti di termini
- Espressioni aritmetiche
- Espressioni booleane
- Espressioni di cortocircuito
16) Spiegare come viene inviato e ricevuto un messaggio in Erlang?
Per inviare un messaggio Erlang utilizza il punto esclamativo (!) come operatore per l'invio di un messaggio. La sintassi utilizzata per inviare un messaggio è Pid! Messaggio. Per ricevere il messaggio Erlang utilizza il Pattern Matching, per consegnare un messaggio dalla coda dei messaggi viene utilizzata l'istruzione di ricezione.
17) Spiegare cosa sono Spawn/ 1l3 e Spawn_link 1l3?
Spawn/ 1l3: crea un nuovo processo e restituisce il suo pid. Nella coda dello scheduler di sistema, il nuovo processo viene inserito in modo che venga eseguito qualche tempo dopo. Spawn_link/1l3: fornisce la stessa funzionalità di spawn/1l3 ma con l'aggiunta di un collegamento creato atomicamente tra il processo appena generato e il chiamante.
18) Menziona qual è la sintassi per scrivere macro in Erlang?
La sintassi utilizzata per scrivere macro in Erlang è
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Elenca le macro predefinite in Erlang?
Le macro predefinite in Erlang sono
- Moduli: Restituisce il nome del modulo corrente
- Stringa_modulo: Restituisce il nome del modulo corrente, come una stringa
- File: Restituisce il nome del file corrente
- Linea: Restituisce il numero di riga corrente
- Macchina: Restituisce il nome corrente della macchina, "BEAM".
20) Spiegare cos'è un record e come è possibile definire i record in Erlang?
Per memorizzare un numero fisso di elementi, a struttura dati viene utilizzato il record. Le espressioni vengono tradotte in espressioni tupla durante la registrazione della compilazione. Il record in Erlang è definito dal nome del record, seguito dai nomi dei campi del record. I nomi dei record e dei campi devono essere atomi.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Menziona qual è il comando utilizzato per accedere al campo record in Erlang?
Espr#Nome.Campo, questo comando restituirà il valore del campo menzionato mentre per restituire la posizione del campo specificato viene utilizzato #Nome.Campo.
22) Spiegare cos'è l'epmd?
epmd è un piccolo server dei nomi utilizzato dai programmi Erlang quando stabiliscono comunicazioni Erlang distribuite. Viene anche definito demone Erlang Port Mapper. È responsabile della mappatura dei nomi simbolici dei nodi sugli indirizzi della macchina che viene utilizzata.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)