Κορυφαίες 22 ερωτήσεις και απαντήσεις στη συνέντευξη Erlang (2025)
Ακολουθούν ερωτήσεις και απαντήσεις συνέντευξης Erlang για νεοφώτιστους καθώς και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.
1) Τι είναι το Erlang;
Η Erlang είναι μια γλώσσα προγραμματισμού γενικού σκοπού και ένα περιβάλλον χρόνου εκτέλεσης. Έχει ενσωματώσει υποστήριξη για συγχρονισμό, ανοχή σφαλμάτων και διανομή. Το Erlang είναι διαθέσιμο ως ανοιχτού κώδικα.
Δωρεάν λήψη PDF: Ερωτήσεις και απαντήσεις στη συνέντευξη Erlang
2) Εξηγήστε τι είναι το OTP (Open Telecom Platform);
Το OTP είναι μια πλατφόρμα ανοιχτού κώδικα και είναι ένα μεγάλο σύνολο βιβλιοθηκών για να κάνει η Erlang τα πάντα, από τη μεταγλώττιση του ASN.1 έως την παροχή ενός διακομιστή WWW.
3) Ποια είναι τα βασικά χαρακτηριστικά του Erlang;
Βασικά χαρακτηριστικά για το Erlang είναι ότι έχει
- Δηλωτική σύνταξη: Έχει δηλωτική σύνταξη
- Ταυτόχρονος: Διαθέτει μοντέλο συγχρονισμού που βασίζεται στη διαδικασία
- Πραγματικός χρόνος: Προγραμματίζει σύστημα σε πραγματικό χρόνο
- Συνεχής λειτουργία: Επιτρέπει τη συνεχή λειτουργία
- Εύρωστος: Για τον εντοπισμό σφαλμάτων χρόνου εκτέλεσης έχει τρεις κατασκευές στη γλώσσα
- Διαχείριση μνήμης: Η μνήμη εκχωρείται αυτόματα και αποχωρίζεται όταν δεν απαιτείται
- Διανομή: Δεν έχει κοινή μνήμη, τα κατανεμημένα συστήματα μπορούν να κατασκευαστούν εύκολα στο erlang
- Ενσωμάτωση: Εύκολη ενσωμάτωση προγράμματος γραμμένου σε άλλη γλώσσα
4) Ονομάστε τους τύπους δεδομένων που παρέχει το erlang;
Το Erlang παρέχει δύο τύπους δεδομένων
- Σταθεροί τύποι δεδομένων: Αυτοί οι τύποι τύπων δεδομένων δεν μπορούν να χωριστούν σε πιο πρωτόγονους υποτύπους. Αποτελείται από Αριθμούς και Άτομα.
- Τύποι σύνθετων δεδομένων: Αυτοί οι τύποι τύπων δεδομένων χρησιμοποιούνται για την ομαδοποίηση άλλων τύπων τύπων δεδομένων. Αποτελείται από πλειάδες και λίστες.
5) Ποια είναι η εντολή για την αποσύνδεση του κόμβου στο Erlang;
Καλώντας το erlang: disconnect_node (Node) θα αναγκάσει την αποσύνδεση του κόμβου.

6) Εξηγήστε τι είναι τα modules στο Erlang;
Το Erlang επιτρέπει την οργάνωση κώδικα σε λειτουργικές μονάδες. Μια ενότητα αποτελείται από λειτουργίες. εισάγει ένα τοπικό πεδίο λειτουργιών (Δημόσιο και Ιδιωτικό).
7) Αναφέρετε πώς αποθηκεύεται το module στο Erlang;
Ένα όνομα μονάδας αποθηκεύεται σε ένα αρχείο που ονομάζεται .erl. Το όνομα βάσης του αρχείου και το όνομα της μονάδας πρέπει να είναι το ίδιο.
8) Εξηγήστε τι είναι οι συμβολοσειρές Bit στο Erlang;
Για την αποθήκευση μιας περιοχής άτυπης μνήμης, χρησιμοποιείται μια συμβολοσειρά bit και εκφράζεται χρησιμοποιώντας τη σύνταξη bit.
9) Εξηγήστε τι είναι το Pattern Matching;
Μια αντιστοίχιση μοτίβου εμφανίζεται κατά την αξιολόγηση μιας κλήσης συνάρτησης. Μέσω του μηχανισμού αντιστοίχισης προτύπων, οι μεταβλητές συνδέονται με τις τιμές.
10) Εξηγήστε τι είναι ο τύπος δεδομένων PID;
PID σημαίνει Αναγνωριστικό διεργασίας και είναι ο τύπος δεδομένων που χρησιμοποιείται για τα μοναδικά αναγνωριστικά διεργασίας που εκχωρούνται σε κάθε διεργασία.
11) Για να συμπεριλάβετε ένα αρχείο στο Erlang ποια είναι η εντολή που χρησιμοποιείται;
Με δύο τρόπους, ένα αρχείο μπορεί να συμπεριληφθεί στο Erlang
- περιλαμβάνει (Αρχείο).
- include_lib (Αρχείο).

12) Πώς αντιμετωπίζεται το σφάλμα χρόνου εκτέλεσης στο Erlang;
Είναι δυνατό να αποτρέψετε σφάλματα χρόνου εκτέλεσης και άλλες εξαιρέσεις που προκαλούν τον τερματισμό της διαδικασίας χρησιμοποιώντας το Catch ή το Try. Το Catch Expr επιστρέφει την τιμή της έκφρασης, εκτός εάν παρουσιαστεί εξαίρεση κατά την αξιολόγηση. Δοκιμάστε το Exprs είναι η βελτίωση του catch με την ικανότητα να αναγνωρίζετε την κατηγορία εξαίρεσης και να επιλέξετε να χειριστείτε την επιθυμητή.
13) Στο Erlang πώς δημιουργείται η «διαδικασία»;
Η διαδικασία δημιουργείται καλώντας το spawn και το spawn σχηματίζει μια νέα διαδικασία και επιστρέφει το pid.
- Spawn (Ενότητα, Όνομα, Args) -> pid ()
14) Ορίστε την ακολουθία φρουράς και ποιες είναι οι έγκυρες εκφράσεις φρουράς;
Οι ρήτρες λειτουργίας Erlang μπορούν να προστατεύονται με προφυλακτήρες. μια ρήτρα μπορεί να προστατευθεί μόνο εάν ο φύλακας κρατήσει. Είναι μια ακολουθία φυλάκων, που χωρίζονται με ερωτηματικό (;), και ένα φύλακας είναι μια ακολουθία φρουρών που χωρίζονται με κόμμα (,). Η ακολουθία φρουρών είναι αληθής εάν τουλάχιστον ένας από τους φρουρούς είναι αληθής.
15) Δώστε τη λίστα με τις έγκυρες εκφράσεις φρουράς;
Έγκυρες εκφράσεις φρουράς είναι
- Άτομο αληθινό,
- Άλλες σταθερές
- Κλήσεις προς τα καθορισμένα BIF
- Συγκρίσεις όρων
- Αριθμητικές εκφράσεις
- Εκφράσεις Boolean
- Εκφράσεις βραχυκυκλώματος
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: Επιστρέφει το όνομα της τρέχουσας ενότητας, ως συμβολοσειρά
- Αρχείο: Επιστρέφει το τρέχον όνομα αρχείου
- Γραμμή: Επιστρέφει τον τρέχοντα αριθμό γραμμής
- Μηχανή: Επιστρέφει το τρέχον όνομα μηχανήματος, 'BEAM'.
20) Εξηγήστε τι είναι μια εγγραφή και πώς μπορείτε να ορίσετε εγγραφές στο Erlang;
Για την αποθήκευση ενός σταθερού αριθμού στοιχείων, α δομή δεδομένων χρησιμοποιείται το οποίο αναφέρεται ως εγγραφή. Οι εκφράσεις μεταφράζονται σε πολλαπλές εκφράσεις κατά τη διάρκεια της εγγραφής μεταγλώττισης. Η εγγραφή στο Erlang ορίζεται από το όνομα της εγγραφής, ακολουθούμενη από τα ονόματα πεδίων της εγγραφής. Τα ονόματα εγγραφών και πεδίων πρέπει να είναι άτομα.
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Αναφέρετε ποια είναι η εντολή που χρησιμοποιείται για την πρόσβαση στο πεδίο εγγραφής στο Erlang;
Expr#Name.Field, αυτή η εντολή θα επιστρέψει την τιμή του αναφερόμενου πεδίου ενώ για την επιστροφή της θέσης του καθορισμένου πεδίου χρησιμοποιείται το #Name.Field.
22) Εξηγήστε τι είναι το epmd;
Το epmd είναι ένας μικρός διακομιστής ονομάτων που χρησιμοποιείται από τα προγράμματα Erlang κατά τη δημιουργία κατανεμημένων επικοινωνιών Erlang. Αναφέρεται επίσης ως Erlang Port Mapper Daemon. Είναι υπεύθυνος για την αντιστοίχιση των συμβολικών ονομάτων κόμβων στις διευθύνσεις μηχανών που χρησιμοποιείται.
Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας