Το Luau, μια παραλλαγή ελέγχου τύπου της γλώσσας Lua γίνεται ανοιχτού κώδικα

Πρόσφατα ανακοινώθηκε η κυκλοφορία της πρώτης έκδοσης ανεξάρτητα από τη γλώσσα προγραμματισμού Λουάου, το οποίο συνεχίζει με την ανάπτυξη του Lua και είναι επίσης συμβατό με προηγούμενες εκδόσεις του Lua 5.1.

Η γλώσσα Luau είναι σχεδιασμένο κυρίως για την ενσωμάτωση μηχανών δέσμης ενεργειών σε εφαρμογές και στοχεύει στην επίτευξη υψηλών επιδόσεων και χαμηλής κατανάλωσης πόρων. Ο κώδικας του έργου είναι γραμμένος σε C ++ και είναι ανοιχτός υπό την άδεια MIT.

Το Luau επεκτείνει το Lua με δυνατότητες ελέγχου τύπου και μερικές κατασκευές νέα συντακτικά όπως τα κυριολεκτικά χορδών. Η γλώσσα είναι συμβατή με προηγούμενες εκδόσεις του Lua 5.1 και εν μέρει με νεότερες εκδόσεις. Το Lua Runtime API υποστηρίζεται, επιτρέποντας στο Luau να χρησιμοποιείται με προϋπάρχοντες κωδικούς και συνδέσμους.

Από σήμερα, το Luau δεν είναι πλέον αναπόσπαστο μέρος της πλατφόρμας Roblox. είναι μια ανεξάρτητη γλώσσα ανοιχτού κώδικα.

Ο χρόνος εκτέλεσης της γλώσσας βασίζεται σε πολύ αναθεωρημένο κώδικα χρόνου εκτέλεσης Lua 5.1, αλλά ο διερμηνέας έχει ξαναγραφτεί πλήρως. Η ανάπτυξη περιελάμβανε ορισμένες νέες τεχνικές βελτιστοποίησης που κατέστησαν δυνατή την επίτευξη υψηλότερης απόδοσης σε σύγκριση με τον Lua.

Όταν δημιουργήθηκε η Roblox πριν από 15 χρόνια, επιλέξαμε τη Lua ως γλώσσα προγραμματισμού. Το Lua ήταν μικρό, γρήγορο, εύκολο στην ενσωμάτωση και την εκμάθηση, και άνοιξε τεράστιες δυνατότητες στους προγραμματιστές μας.

Μεγάλο μέρος του Roblox χτίστηκε στο Lua, συμπεριλαμβανομένων εκατοντάδων χιλιάδων γραμμών εσωτερικά αναπτυγμένου κώδικα που τροφοδοτεί την εφαρμογή Roblox και το Roblox Studio μέχρι σήμερα, και τις εκατομμύρια εμπειρίες που έχουν δημιουργήσει οι προγραμματιστές. Για πολλούς από αυτούς, ήταν η πρώτη γλώσσα προγραμματισμού που έμαθαν.

Το έργο αναπτύχθηκε από τη Roblox και χρησιμοποιείται σε κώδικα πλατφόρμας παιχνιδιών και προσαρμοσμένες εφαρμογές από αυτήν την εταιρεία, συμπεριλαμβανομένου του εκδότη του Roblox Studio. Αρχικά, το Luau αναπτύχθηκε κεκλεισμένων των θυρών, αλλά τελικά αποφασίστηκε να μεταφερθεί στην κατηγορία των ανοιχτών έργων για περαιτέρω κοινή ανάπτυξη με τη συμμετοχή της κοινότητας.

Βασικά Χαρακτηριστικά:

  • Ένα σύστημα διαδοχικού τύπου, το οποίο καταλαμβάνει μια ενδιάμεση θέση μεταξύ δυναμικής και στατικής γραφής. Το Luau επιτρέπει τη στατική γραφή όπως απαιτείται, προσδιορίζοντας πληροφορίες τύπου μέσω ειδικών σχολιασμών.
  • ο ενσωματωμένους τύπους "Οποιοδήποτε", "μηδενικό", "boolean", "number", "string" και "thread". Ταυτόχρονα, διατηρείται επίσης η δυνατότητα χρήσης δυναμικής πληκτρολόγησης χωρίς να ορίζεται ρητά ο τύπος των μεταβλητών και των συναρτήσεων.
  • Υποστήριξη για κυριολεκτικές χορδές (όπως στο Lua 5.3)
  • Υποστήριξη για την έκφραση "continue", εκτός από την υπάρχουσα λέξη-κλειδί "break", για μετάβαση σε μια νέα επανάληψη του βρόχου.
  • Υποστήριξη για τελεστές σύνθετης ανάθεσης
  • Υποστήριξη για τη χρήση του μπλοκ υπό όρους "If-then-else" με τη μορφή παραστάσεων που επιστρέφουν την τιμή που υπολογίστηκε κατά την εκτέλεση του μπλοκ. Μπορείτε να καθορίσετε έναν αυθαίρετο αριθμό εντολών elseif σε ένα μπλοκ.
  • Η παρουσία μιας λειτουργίας sandbox που σας επιτρέπει να εκτελείτε μη αξιόπιστο κώδικα. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για να οργανώσετε τον δικό σας κώδικα και τον κώδικα που γράφτηκε από άλλον προγραμματιστή, για παράδειγμα βιβλιοθήκες τρίτων που δεν είναι εγγυημένες, ώστε να εκτελούνται δίπλα-δίπλα.
  • Ένας περιορισμός της τυπικής βιβλιοθήκης από την οποία έχουν αφαιρεθεί λειτουργίες που θα μπορούσαν να δημιουργήσουν προβλήματα ασφαλείας. Για παράδειγμα, οι βιβλιοθήκες "io" (πρόσβαση σε αρχεία και διαδικασίες εκκίνησης), "package" (πρόσβαση σε αρχεία και φόρτωση λειτουργικών μονάδων), "os" (οι λειτουργίες πρόσβασης σε αρχεία και αλλαγής μεταβλητών περιβάλλοντος έχουν αφαιρεθεί), "Debug" (μη ασφαλής χειρισμός μνήμης), "dofile" και "loadfile" (πρόσβαση στο σύστημα αρχείων).
  • Παρέχετε εργαλεία για ανάλυση στατικού κώδικα, ανίχνευση σφαλμάτων (Linter) και επικύρωση της χρήσης τύπων.
  • Αναλυτής, διερμηνέας bytecode και ιδιόκτητος μεταγλωττιστής υψηλής απόδοσης.
  • Το Luau δεν υποστηρίζει ακόμη τη συλλογή JIT, αλλά υποστηρίζεται ότι ο διερμηνέας Luau είναι αρκετά συγκρίσιμος σε απόδοση με το LuaJIT σε ορισμένες περιπτώσεις.

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.