22 найпопулярніші запитання та відповіді на інтерв’ю Erlang (2025)

Ось питання та відповіді на співбесіду Erlang для новачків, а також для досвідчених кандидатів, щоб отримати роботу своєї мрії.


1) Що таке Erlang?

Erlang — це мова програмування загального призначення та середовище виконання. Він має вбудовану підтримку паралелізму, відмовостійкості та розподілу. Erlang доступний як відкритий код.

Безкоштовне завантаження у форматі PDF: Erlang Interview Questions and Answers


2) Поясніть, що таке OTP (Open Telecom Platform)?

OTP є платформою з відкритим вихідним кодом, і це великий набір бібліотек для Erlang, щоб виконувати все, від компіляції ASN.1 до надання WWW-сервера.


3) Які ключові особливості Erlang?

Ключовими особливостями для Erlang є те, що він має

  • Декларативний синтаксис: Він має декларативний синтаксис
  • Паралельно: Він має процесну модель паралельності
  • Реальний час: Він програмує систему реального часу
  • Безперервна робота: Це дозволяє безперервно працювати
  • Міцний: Для виявлення помилок виконання він має три конструкції в мові
  • Управління пам'яттю: Пам'ять виділяється автоматично та звільняється, коли вона не потрібна
  • Поширення: Він не має спільної пам’яті, розподілені системи можна легко побудувати в erlang
  • Інтеграція: Легка інтеграція програми, написаної іншою мовою

4) Назвіть типи даних, які надає erlang?

Erlang надає два типи даних

  • Типи постійних даних: Ці типи типів даних не можна розділити на більш примітивні підтипи. Він складається з чисел і атомів.
  • Складені типи даних: Ці типи типів даних використовуються для групування інших типів типів даних. Він складається з кортежів і списків.

5) Яка команда для відключення вузла в Erlang?

Викликаючи erlang: disconnect_node (Node) примусово від’єднає вузол.

Питання для співбесіди Erlang
Питання для співбесіди Erlang

6) Поясніть, що таке модулі в Erlang?

Erlang дозволяє організовувати код у модулі. Модуль складається з функцій; він вводить локальну область функцій (публічну та приватну).


7) Згадайте, як модуль зберігається в Erlang?

Назва модуля зберігається у файлі з назвою .erl. Базове ім’я файлу та ім’я модуля мають збігатися.


8) Поясніть, що таке бітові рядки в Erlang?

Для зберігання області нетипової пам’яті використовується бітовий рядок, який виражається за допомогою бітового синтаксису.


9) Поясніть, що таке зіставлення за зразком?

Зіставлення шаблону відбувається під час оцінки виклику функції. За допомогою механізму відповідності за зразком змінні прив’язуються до значень.


10) Поясніть, що таке тип даних PID?

PID означає ідентифікатор процесу та є типом даних, який використовується для унікальних ідентифікаторів процесу, які призначаються кожному процесу.


11) Яка команда використовується для включення файлу в Erlang?

Файл можна включити в Erlang двома способами

  • включити (файл).
  • include_lib (файл).
Ерланг
Ерланг

12) Як у Erlang обробляються помилки під час виконання?

Можна запобігти завершенню процесу через помилки під час виконання та інші винятки, використовуючи Catch або Try. Catch Expr повертає значення виразу, якщо під час обчислення не виникає виняткова ситуація. Try Exprs — це покращення catch із можливістю ідентифікувати клас винятків і вибрати обробку потрібного.


13) Як у Erlang створюється «процес»?

Процес створюється шляхом виклику spawn, і spawn формує новий процес і повертає pid.

  • Spawn (Module, Name, Args ) -> pid ()

14) Визначте захисну послідовність і які дійсні захисні вирази?

Функціональні пропозиції Erlang можуть бути захищені захисними засобами; пункт може бути захищений, лише якщо охоронець тримає. Це послідовність захисних символів, розділених крапкою з комою (;), а захисний рядок — це послідовність захисних виразів, розділених комою (,). Охоронна послідовність істинна, якщо хоча б один із охоронців істинний.


15) Наведіть список дійсних захисних виразів?

Допустимі захисні вирази

  • Атом правда,
  • Інші константи
  • Дзвінки до вказаних BIF
  • Порівняння термінів
  • Арифметичні вирази
  • Булеві вирази
  • Вирази короткого замикання

16) Поясніть, як надсилається та отримується повідомлення в Erlang?

Для надсилання повідомлення Erlang використовує знак оклику (!) як оператор для надсилання повідомлення. Для надсилання повідомлення використовується синтаксис Pid! повідомлення. Для отримання повідомлення Erlang використовує Pattern Matching, щоб доставити повідомлення з черги повідомлень, використовується оператор receive.


17) Поясніть, що таке Spawn/ 1l3 і Spawn_link 1l3?

Spawn/ 1l3: створює новий процес і повертає його pid. У черзі системного планувальника новий процес розміщується так, що він виконується через деякий час. Spawn_link/1l3: забезпечує ту саму функціональність, що й spawn/1l3, але з додаванням зв’язку, яке створюється атомарно між щойно створеним процесом і абонентом.


18) Згадайте, який синтаксис використовується для запису макросів у Erlang?

Синтаксис, який використовується для написання макросів у Erlang, такий

 define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )

19) Перелічіть попередньо визначені макроси в Erlang?

Попередньо визначені макроси в Erlang є

  • Модуль: Він повертає назву поточного модуля
  • Рядок_модуля: Він повертає назву поточного модуля у вигляді рядка
  • Файл: Він повертає поточну назву файлу
  • Лінія: Він повертає номер поточного рядка
  • машина: Він повертає поточну назву машини, "BEAM".

20) Поясніть, що таке запис і як можна визначити записи в Erlang?

Для зберігання фіксованої кількості елементів, a структура даних використовується, що називається записом. Під час запису компіляції вирази транслюються у вирази кортежу. Запис в Erlang визначається назвою запису, а потім іменами полів запису. Імена записів і полів мають бути атомами.

record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )

21) Згадайте, яка команда використовується для доступу до поля запису в Erlang?

Expr#Name.Field, ця команда повертає значення зазначеного поля, а для повернення позиції зазначеного поля використовується #Name.Field.


22) Поясніть, що таке epmd?

epmd — це невеликий сервер імен, який використовується програмами Erlang під час встановлення розподіленого зв’язку Erlang. Його також називають Erlang Port Mapper Daemon. Він відповідає за зіставлення імен символічних вузлів з адресами машин, які він використовує.

Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)

Поділитись

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *