22 câu hỏi phỏng vấn Erlang hàng đầu và câu trả lời (2025)
Dưới đây là những câu hỏi phỏng vấn Erlang và câu trả lời dành cho cả ứng viên mới và ứng viên có kinh nghiệm để có được công việc mơ ước.
1) Erlang là gì?
Erlang là ngôn ngữ lập trình mục đích chung và môi trường thời gian chạy. Nó có hỗ trợ tích hợp cho tính đồng thời, khả năng chịu lỗi và phân phối. Erlang có sẵn dưới dạng mã nguồn mở.
Tải xuống PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn Erlang
2) Giải thích OTP (Open Telecom Platform) là gì?
OTP là một nền tảng mã nguồn mở và là một bộ thư viện lớn để Erlang thực hiện mọi việc, từ biên dịch ASN.1 đến cung cấp máy chủ WWW.
3) Các tính năng chính của Erlang là gì?
Các tính năng chính của Erlang là nó có
- Cú pháp khai báo: Nó có cú pháp khai báo
- Đồng thời: Nó có mô hình đồng thời dựa trên quy trình
- Thời gian thực: Nó lập trình hệ thống thời gian thực
- Hoạt động liên tục: Nó cho phép hoạt động liên tục
- Mạnh mẽ: Để phát hiện lỗi thời gian chạy, nó có ba cấu trúc trong ngôn ngữ
- Quản lý bộ nhớ: Bộ nhớ được phân bổ tự động và hủy phân bổ khi không cần thiết
- Phân bố: Nó không có bộ nhớ chia sẻ, các hệ thống phân tán có thể dễ dàng được xây dựng trong erlang
- Hội nhập: Tích hợp dễ dàng chương trình được viết bằng ngôn ngữ khác
4) Hãy nêu tên các kiểu dữ liệu mà erlang cung cấp?
Erlang cung cấp hai kiểu dữ liệu
- Kiểu dữ liệu hằng số: Các kiểu dữ liệu này không thể được chia thành các kiểu dữ liệu con nguyên thủy hơn. Nó bao gồm Số và Nguyên tử.
- Kiểu dữ liệu hợp chất: Các kiểu dữ liệu này được sử dụng để nhóm các kiểu dữ liệu khác lại với nhau. Nó bao gồm các bộ và danh sách.
5) Lệnh ngắt kết nối node trong Erlang là gì?
Bằng cách gọi erlang: disconnect_node(Node) sẽ buộc ngắt kết nối nút.
6) Giải thích mô-đun trong Erlang là gì?
Erlang cho phép tổ chức mã thành các mô-đun. Một mô-đun bao gồm các hàm; nó giới thiệu phạm vi hàm cục bộ (Công khai và Riêng tư).
7) Hãy đề cập đến cách mô-đun được lưu trữ trong Erlang?
Tên mô-đun được lưu trữ trong tệp có tên .erl. Tên cơ sở tệp và tên mô-đun phải giống nhau.
8) Giải thích chuỗi Bit trong Erlang là gì?
Để lưu trữ một vùng bộ nhớ không được gõ, một chuỗi bit được sử dụng và được thể hiện bằng cú pháp bit.
9) Giải thích Pattern Matching là gì?
Việc khớp mẫu xảy ra khi đánh giá một lệnh gọi hàm. Thông qua cơ chế khớp mẫu, các biến được liên kết với các giá trị.
10) Giải thích kiểu dữ liệu PID là gì?
PID có nghĩa là Mã định danh quy trình và là kiểu dữ liệu được sử dụng cho các mã định danh quy trình duy nhất được gán cho mọi quy trình.
11) Để đưa một tập tin vào Erlang, lệnh nào được sử dụng?
Theo hai cách, một tập tin có thể được đưa vào Erlang
- bao gồm (Tệp).
- include_lib (Tệp).
12) Lỗi thời gian chạy được xử lý như thế nào trong Erlang?
Có thể ngăn chặn lỗi thời gian chạy và các ngoại lệ khác khiến quy trình kết thúc bằng cách sử dụng Catch hoặc Try. Catch Expr trả về giá trị của biểu thức trừ khi có ngoại lệ xảy ra trong quá trình đánh giá. Try Exprs là sự cải tiến của catch với khả năng xác định lớp ngoại lệ và chọn xử lý lớp mong muốn.
13) Trong Erlang, “quy trình” được tạo ra như thế nào?
Tiến trình được tạo ra bằng cách gọi spawn và spawn sẽ tạo một tiến trình mới và trả về pid.
- Spawn(Module, Name, Args) -> pid()
14) Định nghĩa chuỗi bảo vệ và các biểu thức bảo vệ hợp lệ là gì?
Các mệnh đề hàm Erlang có thể được bảo vệ bằng các lệnh bảo vệ; một mệnh đề chỉ có thể được bảo vệ nếu lệnh bảo vệ giữ nguyên. Đó là một chuỗi các lệnh bảo vệ, được phân tách bằng dấu chấm phẩy (;), và lệnh bảo vệ là một chuỗi các biểu thức lệnh bảo vệ được phân tách bằng dấu phẩy (,). Chuỗi lệnh bảo vệ là đúng nếu ít nhất một trong các lệnh bảo vệ là đúng.
15) Cung cấp danh sách các biểu thức bảo vệ hợp lệ?
Biểu thức bảo vệ hợp lệ là
- Nguyên tử đúng,
- Các hằng số khác
- Các cuộc gọi đến BIF được chỉ định
- So sánh thuật ngữ
- Biểu thức số học
- Biểu thức Boolean
- Biểu thức ngắn mạch
16) Giải thích cách gửi và nhận tin nhắn trong Erlang?
Để gửi tin nhắn, Erlang sử dụng dấu chấm than (!) làm toán tử để gửi tin nhắn. Cú pháp được sử dụng để gửi tin nhắn là Pid ! Message. Để nhận tin nhắn, Erlang sử dụng Pattern Matching, để gửi tin nhắn từ hàng đợi tin nhắn, câu lệnh receive được sử dụng.
17) Giải thích Spawn/ 1l3 và Spawn_link 1l3 là gì?
Spawn/ 1l3: Nó tạo ra một tiến trình mới và trả về pid của nó. Trong hàng đợi lập lịch hệ thống, tiến trình mới được đặt để chạy sau một thời gian. Spawn_link/1l3: Nó cung cấp cùng chức năng như spawn/1l3 nhưng có thêm một liên kết được tạo nguyên tử giữa tiến trình mới được tạo và trình gọi.
18) Hãy cho biết cú pháp để viết Macro trong Erlang là gì?
Cú pháp được sử dụng để viết Macro trong Erlang là
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Liệt kê các Macro được xác định trước trong Erlang?
Các Macro được xác định trước trong Erlang là
- Mô-đun: Nó trả về tên của mô-đun hiện tại
- Chuỗi mô-đun: Nó trả về tên của mô-đun hiện tại dưới dạng chuỗi
- File: Nó trả về tên tập tin hiện tại
- Hàng: Nó trả về số dòng hiện tại
- Máy móc: Nó trả về tên máy hiện tại là 'BEAM.'
20) Giải thích bản ghi là gì và làm thế nào để định nghĩa bản ghi trong Erlang?
Để lưu trữ một số lượng phần tử cố định, một cấu trúc dữ liệu được sử dụng được gọi là bản ghi. Biểu thức được dịch thành biểu thức tuple trong quá trình biên dịch bản ghi. Bản ghi trong Erlang được định nghĩa theo tên của bản ghi, theo sau là tên trường của bản ghi. Tên bản ghi và trường phải là nguyên tử.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Hãy cho biết lệnh nào được sử dụng để truy cập vào trường bản ghi trong Erlang?
Expr#Name.Field, lệnh này sẽ trả về giá trị của trường được đề cập trong khi để trả về vị trí của trường được chỉ định, lệnh #Name.Field được sử dụng.
22) Giải thích epmd là gì?
epmd là một máy chủ tên nhỏ được các chương trình Erlang sử dụng khi thiết lập giao tiếp Erlang phân tán. Nó cũng được gọi là Erlang Port Mapper Daemon. Nó chịu trách nhiệm ánh xạ tên nút tượng trưng đến địa chỉ máy mà nó được sử dụng.
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn