Топ 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) ще принуди прекъсването на връзката на възела.
6) Обяснете какво представляват модулите в Erlang?
Erlang дава възможност за организиране на код в модули. Модулът се състои от функции; той въвежда локален обхват от функции (публични и частни).
7) Споменете как модулът се съхранява в Erlang?
Името на модула се съхранява във файл с име .erl. Базовото име на файла и името на модула трябва да са еднакви.
8) Обяснете какво е битови низове в Erlang?
За съхраняване на област от нетипизирана памет се използва битов низ, който се изразява с битовия синтаксис.
9) Обяснете какво е Pattern Matching?
Съпоставяне на образец възниква при оценяване на извикване на функция. Чрез механизма за съвпадение на шаблони променливите са обвързани със стойностите.
10) Обяснете какво е PID тип данни?
PID означава идентификатор на процеса и е типът данни, използван за уникалните идентификатори на процеса, които се присвояват на всеки процес.
11) Каква команда се използва за включване на файл в Erlang?
По два начина даден файл може да бъде включен в Erlang
- включване (файл).
- include_lib (Файл).
12) Как се третира грешката по време на изпълнение в Erlang?
Възможно е да предотвратите грешки по време на изпълнение и други изключения да причинят прекратяване на процеса, като използвате Catch или Try. Catch Expr връща стойността на израза, освен ако не възникне изключение по време на оценката. Try Exprs е подобрението на catch с възможност за идентифициране на класа на изключение и избор на обработка на желания.
13) В Erlang как се създава „процес“?
Процесът се създава чрез извикване на spawn, а spawn формира нов процес и връща pid.
- Спаун (модул, име, аргументи) -> pid ()
14) Дефинирайте защитната последователност и какви са валидните защитни изрази?
Функционалните клаузи на Erlang могат да бъдат защитени с предпазители; клауза може да бъде защитена само ако гардът държи. Това е поредица от предпазители, разделени с точка и запетая (;), а предпазителят е поредица от предпазни изрази, разделени със запетая (,). Последователността на охраната е вярна, ако поне един от пазачите е верен.
15) Дайте списък с валидни защитни изрази?
Валидни защитни изрази са
- Atom true,
- Други константи
- Обаждания към посочените BIF
- Сравнения на термини
- Аритметични изрази
- Булеви изрази
- Изрази на късо съединение
16) Обяснете как се изпращат и получават съобщения в Erlang?
За изпращане на съобщение Erlang използва удивителния знак (!) като оператор за изпращане на съобщение. Синтаксисът, използван за изпращане на съобщение, е Pid! Съобщение. За получаване на съобщение Erlang използва Pattern Matching, за да достави съобщение от опашката за съобщения се използва оператор за получаване.
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 са
- Модул: Връща името на текущия модул
- Module_String: Връща името на текущия модул като низ
- File: Връща текущото име на файл
- линия: Връща номера на текущия ред
- машина: Връща името на текущата машина, „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. Той е отговорен за картографирането на имената на символните възли към машинните адреси, които се използват.
Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)