Las 22 mejores preguntas y respuestas de la entrevista de Erlang (2025)
Aquí hay preguntas y respuestas de la entrevista de Erlang para principiantes y candidatos experimentados para obtener el trabajo de sus sueños.
1) ¿Qué es Erlang?
Erlang es un lenguaje de programación de propósito general y un entorno de tiempo de ejecución. Ha incorporado soporte para concurrencia, tolerancia a fallas y distribución. Erlang está disponible como fuente abierta.
Descarga gratuita de PDF: Preguntas y respuestas de la entrevista de Erlang
2) Explique qué es OTP (Open Telecom Platform)?
OTP es una plataforma de código abierto y es un gran conjunto de bibliotecas para que Erlang haga todo, desde compilar ASN.1 hasta proporcionar un servidor WWW.
3) ¿Cuáles son las características clave de Erlang?
Las características clave de Erlang es que tiene
- Sintaxis declarativa: Tiene sintaxis declarativa.
- Concurrente: Tiene un modelo de concurrencia basado en procesos.
- Tiempo real: Programa sistema en tiempo real
- Operación continua: Permite un funcionamiento continuo.
- Robusto: Para detectar errores en tiempo de ejecución, tiene tres construcciones en el lenguaje.
- Gestión de la memoria: La memoria se asigna automáticamente y se desasigna cuando no se requiere
- Distribución: No tiene memoria compartida, los sistemas distribuidos se pueden construir fácilmente en erlang
- Integración: Fácil integración del programa escrito en otro idioma
4) ¿Nombre los tipos de datos que proporciona erlang?
Erlang proporciona dos tipos de datos
- Tipos de datos constantes: Estos tipos de tipos de datos no se pueden dividir en subtipos más primitivos. Se compone de Números y Átomos.
- Tipos de datos compuestos: Estos tipos de tipos de datos se utilizan para agrupar otros tipos de tipos de datos. Se compone de tuplas y listas.
5) ¿Cuál es el comando para desconectar el nodo en Erlang?
Al llamar a erlang: desconectar_nodo (Nodo) forzará la desconexión del nodo.
6) Explique ¿Qué son los módulos en Erlang?
Erlang permite organizar el código en módulos. Un módulo consta de funciones; introduce un ámbito local de funciones (Públicas y Privadas).
7) ¿Mencione cómo se almacena el módulo en Erlang?
El nombre de un módulo se almacena en un archivo llamado .erl. El nombre base del archivo y el nombre del módulo deben ser iguales.
8) Explique qué son las cadenas de bits en Erlang.
Para almacenar un área de memoria sin tipo, se utiliza una cadena de bits y se expresa mediante la sintaxis de bits.
9) Explique qué es la coincidencia de patrones.
Se produce una coincidencia de patrones al evaluar una llamada de función. A través del mecanismo de coincidencia de patrones, las variables están vinculadas a los valores.
10) Explique qué es el tipo de datos PID.
PID significa Identificador de proceso y es el tipo de datos utilizado para los identificadores de proceso únicos que se asignan a cada proceso.
11) Para incluir un archivo en Erlang cual es el comando que se usa?
De dos maneras, un archivo se puede incluir en Erlang
- incluir (Archivo).
- include_lib (Archivo).
12) ¿Cómo se maneja el error de tiempo de ejecución en Erlang?
Es posible evitar que los errores en tiempo de ejecución y otras excepciones hagan que el proceso finalice utilizando Catch o Try. Catch Expr devuelve el valor de expresión a menos que ocurra una excepción durante la evaluación. Try Exprs es la mejora de catch con la capacidad de identificar la clase de excepción y elegir manejar la deseada.
13) En Erlang, ¿cómo se crea el "proceso"?
El proceso se crea llamando a spawn, y spawn forma un nuevo proceso y devuelve el pid.
- Spawn (Módulo, Nombre, Args) -> pid ()
14) Defina la secuencia de guarda y ¿cuáles son las expresiones de guarda válidas?
Las cláusulas de función de Erlang se pueden proteger con guardias; una cláusula sólo puede protegerse si se mantiene la guardia. Es una secuencia de guardias, separadas por punto y coma (;), y una guardia es una secuencia de expresiones de guardia separadas por comas (,). La secuencia de guarda es verdadera si al menos una de las guardas es verdadera.
15) ¿Dar la lista de expresiones de guardia válidas?
Las expresiones de protección válidas son
- Átomo verdadero,
- Otras constantes
- Llamadas a los BIF especificados
- Comparaciones de términos
- Expresiones aritméticas
- Expresiones booleanas
- Expresiones de cortocircuito
16) Explique cómo se envían y reciben mensajes en Erlang.
Para enviar mensajes, Erlang usa el signo de exclamación (!) como operador para enviar un mensaje. ¡La sintaxis utilizada para enviar un mensaje es Pid! Mensaje. Para recibir mensajes, Erlang usa Pattern Matching, para entregar un mensaje desde la cola de mensajes, se usa la declaración de recepción.
17) Explique qué es Spawn/ 1l3 y Spawn_link 1l3.
Spawn/ 1l3: Crea un nuevo proceso y devuelve su pid. En la cola del programador del sistema, el nuevo proceso se coloca para que se ejecute algún tiempo después. Spawn_link/1l3: proporciona la misma funcionalidad que spawn/1l3 pero con la adición de un enlace que se crea atómicamente entre el proceso recién generado y la persona que llama.
18) Menciona ¿cuál es la sintaxis para escribir Macros en Erlang?
La sintaxis utilizada para escribir macros en Erlang es
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) ¿Enumere las macros predefinidas en Erlang?
Las macros predefinidas en Erlang son
- Módulos: Devuelve el nombre del módulo actual.
- Módulo_Cadena: Devuelve el nombre del módulo actual, como una cadena
- archivo: Devuelve el nombre del archivo actual.
- Línea: Devuelve el número de línea actual
- Equipo: Devuelve el nombre de la máquina actual, 'BEAM'.
20) Explique qué es un registro y cómo puede definir registros en Erlang.
Para almacenar un número fijo de elementos, un estructura de datos se utiliza lo que se conoce como registro. Las expresiones se traducen en expresiones de tupla durante el registro de compilación. El registro en Erlang se define por el nombre del registro, seguido de los nombres de campo del registro. Los nombres de registros y campos deben ser átomos.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Mencione cuál es el comando utilizado para acceder al campo de registro en Erlang.
Expr#Name.Field, este comando devolverá el valor del campo mencionado mientras que para devolver la posición del campo especificado se utiliza #Name.Field.
22) Explique ¿Qué es epmd?
epmd es un pequeño servidor de nombres que utilizan los programas Erlang al establecer comunicaciones Erlang distribuidas. También se conoce como Daemon del mapeador de puertos de Erlang. Es responsable de asignar los nombres de los nodos simbólicos a las direcciones de las máquinas que se utilizan.
Estas preguntas de la entrevista también te ayudarán en tu viva(orals)