Top 22 des questions et réponses d'entretien avec Erlang (2025)
Voici les questions et réponses d'entretien d'Erlang pour les candidats débutants et expérimentés pour obtenir l'emploi de leurs rêves.
1) Qu’est-ce qu’Erlang ?
Erlang est un langage de programmation à usage général et un environnement d'exécution. Il prend en charge la concurrence, la tolérance aux pannes et la distribution. Erlang est disponible en open source.
Téléchargement PDF gratuit : Questions et réponses sur l'entretien avec Erlang
2) Expliquez qu'est-ce qu'OTP (Open Telecom Platform) ?
OTP est une plate-forme open source et il s'agit d'un large ensemble de bibliothèques permettant à Erlang de tout faire, de la compilation d'ASN.1 à la fourniture d'un serveur WWW.
3) Quelles sont les principales fonctionnalités d’Erlang ?
Les principales caractéristiques d'Erlang sont qu'il a
- Syntaxe déclarative : Il a une syntaxe déclarative
- Concurrent: Il a un modèle de concurrence basé sur des processus
- Temps réel: Il programme le système en temps réel
- Opération continue: Il permet un fonctionnement continu
- Robuste: Pour détecter les erreurs d'exécution, il dispose de trois constructions dans le langage
- Gestion de la mémoire: La mémoire est allouée automatiquement et désallouée lorsqu'elle n'est pas nécessaire
- Distribution: Il n'a pas de mémoire partagée, les systèmes distribués peuvent être facilement construits en erlang
- Intégration: Intégration facile d'un programme écrit dans une autre langue
4) Nommez les types de données fournis par Erlang ?
Erlang fournit deux types de données
- Types de données constants : Ces types de types de données ne peuvent pas être divisés en sous-types plus primitifs. Il se compose de nombres et d’atomes.
- Types de données composés : Ces types de types de données sont utilisés pour regrouper d’autres types de types de données. Il se compose de tuples et de listes.
5) Quelle est la commande pour déconnecter le nœud dans Erlang ?
En appelant erlang :connect_node (Node) forcera la déconnexion du nœud.
6) Expliquez ce que sont les modules en Erlang ?
Erlang permet d'organiser le code en modules. Un module est constitué de fonctions ; il introduit un périmètre local de fonctions (Public et Privé).
7) Mentionnez comment le module est stocké dans Erlang ?
Un nom de module est stocké dans un fichier nommé .erl. Le nom de base du fichier et le nom du module doivent être identiques.
8) Expliquez ce que sont les chaînes de bits en Erlang ?
Pour stocker une zone de mémoire non typée, une chaîne de bits est utilisée et exprimée en utilisant la syntaxe des bits.
9) Expliquez qu'est-ce que la correspondance de modèles ?
Une correspondance de modèle se produit lors de l’évaluation d’un appel de fonction. Grâce au mécanisme de correspondance de modèles, les variables sont liées aux valeurs.
10) Expliquez ce qu'est le type de données PID ?
PID signifie Process Identifier et est le type de données utilisé pour les identifiants de processus uniques qui sont attribués à chaque processus.
11) Pour inclure un fichier en Erlang quelle est la commande utilisée ?
De deux manières, un fichier peut être inclus dans Erlang
- inclure (Fichier).
- include_lib (Fichier).
12) Comment les erreurs d’exécution sont-elles gérées dans Erlang ?
Il est possible d'empêcher les erreurs d'exécution et autres exceptions de provoquer l'arrêt du processus en utilisant Catch ou Try. Catch Expr renvoie la valeur de l'expression sauf si une exception se produit lors de l'évaluation. Try Exprs est l'amélioration de catch avec la possibilité d'identifier la classe d'exception et de choisir de gérer celle souhaitée.
13) En Erlang, comment est créé le « processus » ?
Le processus est créé en appelant spawn, et spawn forme un nouveau processus et renvoie le pid.
- Spawn (Module, Nom, Args) -> pid ()
14) Définissez la séquence de garde et quelles sont les expressions de garde valides ?
Les clauses de fonction Erlang peuvent être protégées par des gardes ; une clause ne peut être protégée que si la garde est maintenue. Il s'agit d'une séquence de gardes séparées par un point-virgule (;), et une garde est une séquence d'expressions de garde séparées par une virgule (,). La séquence de garde est vraie si au moins une des gardes est vraie.
15) Donner la liste des expressions de garde valides ?
Les expressions de garde valides sont
- Atome vrai,
- Autres constantes
- Appels aux BIF spécifiés
- Comparaisons de termes
- Expressions arithmétiques
- Expressions booléennes
- Expressions de court-circuit
16) Expliquez comment le message est envoyé et reçu en Erlang ?
Pour envoyer un message, Erlang utilise le point d'exclamation (!) comme opérateur pour envoyer un message. La syntaxe utilisée pour envoyer un message est Pid ! Message. Pour recevoir un message, Erlang utilise Pattern Matching, pour transmettre un message à partir de la file d'attente des messages, l'instruction de réception est utilisée.
17) Expliquez ce que sont Spawn/1l3 et Spawn_link 1l3 ?
Spawn/ 1l3 : Il crée un nouveau processus et renvoie son pid. Dans la file d'attente du planificateur système, le nouveau processus est placé de manière à s'exécuter quelque temps plus tard. Spawn_link/1l3 : il fournit la même fonctionnalité que spawn/1l3 mais avec l'ajout d'un lien créé atomiquement entre le processus nouvellement généré et l'appelant.
18) Mentionnez quelle est la syntaxe pour écrire des macros en Erlang ?
La syntaxe utilisée pour écrire des macros en Erlang est
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Répertorier les macros prédéfinies dans Erlang ?
Les macros prédéfinies dans Erlang sont
- Modules: Il renvoie le nom du module actuel
- Module_Chaîne : Il renvoie le nom du module actuel, sous forme de chaîne
- Fichier: Il renvoie le nom du fichier actuel
- Ligne: Il renvoie le numéro de ligne actuel
- Machine: Il renvoie le nom actuel de la machine, « BEAM ».
20) Expliquez ce qu'est un enregistrement et comment définir des enregistrements en Erlang ?
Pour stocker un nombre fixe d'éléments, un Structure de données est utilisé, appelé enregistrement. Les expressions sont traduites en expressions de tuple lors de l'enregistrement de la compilation. L'enregistrement en Erlang est défini par le nom de l'enregistrement, suivi des noms de champs de l'enregistrement. Les noms d’enregistrement et de champ doivent être des atomes.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Mentionnez quelle est la commande utilisée pour accéder au champ d'enregistrement dans Erlang ?
Expr#Name.Field, cette commande renverra la valeur du champ mentionné tandis que pour renvoyer la position du champ spécifié, #Name.Field est utilisé.
22) Expliquez qu'est-ce que l'epmd ?
epmd est un petit serveur de noms utilisé par les programmes Erlang lors de l'établissement de communications Erlang distribuées. Il est également appelé démon Erlang Port Mapper. Il est responsable du mappage des noms de nœuds symboliques avec les adresses des machines qu'il utilise.
Ces questions d'entretien vous aideront également dans votre soutenance