Γενικά | |
---|---|
Ημερ. Δημιουργίας | 1986 |
Είδος | συναρτησιακή γλώσσα προγραμματισμού, γλώσσα προγραμματισμού, λογισμικό ανοικτού κώδικα, ελεύθερο λογισμικό, δεξιότητα |
Διανομή | |
Έκδοση | 27.1.2 (17 Οκτώβριος 2024)[1] |
Λειτουργικά | Ανεξάρτητο πλατφόρμας |
Ανάπτυξη | |
Υπευθ. ανάπτυξης | Ericsson |
Γραμμένο σε | Erlang |
Άδεια χρήσης | Άδεια Apache, Έκδοση 2.0 |
Σύνδεσμοι | |
Επίσημος ιστότοπος | |
https://www.erlang.org/ | |
Αποθετήριο κώδικα | |
https://github.com/erlang/otp |
Η Erlang είναι γλώσσα προγραμματισμού γενικών καθηκόντων με χαρακτηριστικά ταυτοχρονισμού (concurrency) και συλλογής απορριμμάτων. Το ίδιο όνομα αναφέρεται και στο σύστημα χρόνου εκτέλεσής της (runtime system). Το υποσύνολο της Erlang που μπορεί να εκτελείται ακολουθιακά είναι μια γλώσσα συναρτησιακού προγραμματισμού, με αυστηρή αποτίμηση (strict evaluation), μοναδική ανάθεση (single assignment) και δυναμικό σύστημα τύπων (dynamic typing). Όσον αφορά τον ταυτοχρονισμό, ακολουθεί το μοντέλο Actor. Αναπτύχθηκε στην Ericsson για την υποστήριξη κατανεμημένων, ανθεκτικών σε σφάλματα εφαρμογών που να εκτελούνται σε πραγματικό χρόνο (soft-real-time) και χωρίς διακοπή. Υποστηρίζει άμεση ενημέρωση του κώδικα κατά την εκτέλεση (hot swapping), χωρίς να χρειάζεται να σταματήσει το σύστημα.[2]
Αν και στις περισσότερες γλώσσες προγραμματισμού η χρήση νημάτων (threads) θεωρείται δύσκολη και επιρρεπής σε λάθη, η Erlang παρέχει χαρακτηριστικά στο επίπεδο της ίδιας της γλώσσας για τη δημιουργία και το χειρισμό διεργασιών (processes), ώστε να διευκολύνεται η ανάπτυξη ταυτόχρονου κώδικα. Αν και όλος ο ταυτοχρονισμός είναι ρητός στην Erlang, οι διεργασίες επικοινωνούν μεταξύ τους περνώντας μηνύματα αντί μέσω κοινών μεταβλητών, χωρίς να χρειάζονται κλειδώματα (locks).
Η πρώτη έκδοση αναπτύχθηκε από το Τζο Άρμστρονγκ το 1986.[3] Η γλώσσα αρχικά ήταν ιδιόκτητο λογισμικό της Ericsson, αλλά διανεμήθηκε σαν λογισμικό ανοιχτού κώδικα το 1998.