Η ulia είναι μια δυναμική, υψηλού επιπέδου, υψηλής απόδοσης γλώσσα για τεχνικούς υπολογιστές.
πριν ΛΙΓΕΣ μερες ανακοινώθηκε η κυκλοφορία της νέας έκδοσης της γλώσσας προγραμματισμού Julia 1.9, το οποίο συνδυάζει ιδιότητες όπως υψηλή απόδοση, υποστήριξη για δυναμική πληκτρολόγηση και ενσωματωμένα εργαλεία για παράλληλο προγραμματισμό. Η σύνταξη της Julia είναι κοντά στο MATLAB, με κάποια στοιχεία δανεισμένα από τους Ruby και Lisp.
Τζούλια ξεχωρίζει ως γλώσσα προγραμματισμού πολλαπλών πλατφορμών και πολλαπλών παραδειγμάτων με δυναμική πληκτρολόγηση πλαίσιο υψηλού επιπέδου, υψηλής απόδοσης για γενικούς, τεχνικούς και επιστημονικούς υπολογιστές, με σύνταξη παρόμοια με αυτή άλλων παρόμοιων υπολογιστικών περιβαλλόντων.
Κύρια νέα του Julia 1.9
Σε αυτή τη νέα έκδοση του Julia 1.9 που παρουσιάζεται, αρκετές βελτιώσεις στο χρόνο εκτέλεσης/μεταγλωττιστή, από τότε υπήρχε Σημαντική μείωση του χρόνου μέχρι την πρώτη εκτέλεση. Η προμεταγλώττιση πακέτου αποθηκεύει τώρα τον εγγενή κώδικα στο "pkgimage", πράγμα που σημαίνει ότι ο κώδικας που δημιουργείται κατά την προμεταγλώττιση δεν θα χρειάζεται να επαναμεταγλωττιστεί μετά τη φόρτωση του πακέτου. Η χρήση της λειτουργίας pkgimages μπορεί να απενεργοποιηθεί με την επιλογή “–pkgimages=no”.
Μια άλλη από τις αλλαγές που ξεχωρίζει είναι οι Οι κλήσεις με ορίσματα που δεν είναι ειδικά για τον τύπο μπορούν τώρα να βελτιστοποιηθούν μέσω join split για ένεση ή στατικής ανάλυσης, ακόμα κι αν υπάρχουν πολλοί διαφορετικοί τύποι υποψηφίων υποβολής. Αυτό μπορεί να βελτιώσει την απόδοση σε ορισμένες περιπτώσεις όπου οι τύποι αντικειμένων δεν επιλύονται πλήρως στατικά, επιλύοντας στατικά ιστοτόπους κλήσεων "@nospecialize-d" και αποφύγετε την εκ νέου μεταγλώττιση.
Τα κυριολεκτικά ενός χαρακτήρα υποστηρίζουν πλέον την ίδια σύνταξη με τα κυριολεκτικά συμβολοσειρών. Αυτή η σύνταξη μπορεί να αντιπροσωπεύει μη έγκυρες ακολουθίες UTF-8, όπως επιτρέπεται από τον τύπο Char.
Επιπλέον, σε Linux και Windows, η επιλογή «--threads=αυτόματο» τώρα προσπαθεί να προσδιορίσει τον διαθέσιμο αριθμό επεξεργαστών με βάση τη συγγένεια της CPU, η οποία είναι μια μάσκα που συνήθως τοποθετείται σε περιβάλλοντα HPC και cloud.
Η επιλογή έχει απενεργοποιηθεί--math-mode=γρήγορο", αντί του οποίου συνιστάται η χρήση της μακροεντολής "@fastmath", το οποίο έχει καλά καθορισμένη σημασιολογία, εκτός από την παράμετρο "- Νήματα» τώρα έχει τη μορφή «αυτοκίνητο | N[,auto|M]», όπου το M καθορίζει τον αριθμό των διαδραστικών νημάτων που θα δημιουργηθούν.
Προστέθηκε η επιλογή «--heap-size-hint=» για να ορίσετε το όριο μετά το οποίο ξεκινά η ενεργή συλλογή απορριμμάτων. Το μέγεθος μπορεί να καθοριστεί σε byte, kilobyte (1000 KB), megabyte (300 MB) ή gigabyte (1,5 GB).
Η μακροεντολή "@invoke". που εισήχθη στην έκδοση 1.7 εξάγεται τώρα και είναι διαθέσιμο για χρήση. Εκτός, χρησιμοποιήστε τώρα τη μέθοδο "Core.Typeof(x)". μάλλον"Κάθε" όταν ο σχολιασμός τύπου για το όρισμα "x" παραλείπεται. Αυτό απαιτείται ώστε οι τύποι που μεταβιβάζονται ως ορίσματα να υποβάλλονται σε σωστή επεξεργασία.
Επιπλέον, Το "Threads.@spawn" έχει τώρα ένα προαιρετικό πρώτο όρισμα ":default" ή ":interactive". Μια διαδραστική εργασία απαιτεί απόκριση χαμηλής καθυστέρησης και είναι σχεδιασμένη να είναι σύντομη ή συχνή. Οι διαδραστικές εργασίες θα εκτελούνται σε διαδραστικά νήματα εάν καθορίζονται κατά την εκκίνηση του Julia.
Του άλλες αλλαγές που ξεχωρίζουν:
- Η άρνηση της κατηγορηματικής συνάρτησης "!f" επιστρέφει τώρα μια σύνθετη συνάρτηση "(!) ∘ f" αντί για μια ανώνυμη συνάρτηση.
- Οι λειτουργίες διαχωρισμού διαστάσεων λειτουργούν πλέον σε πολλαπλές διαστάσεις: «κάθε φέτα», «κάθε σειρά» και «κάθε κολώνα» επιστρέψτε ένα αντικείμενο"Φέτες» που επιτρέπει στη ναυτιλία να παρέχει πιο αποτελεσματικές μεθόδους.
- Η μακρο «@kwdef» έχει προστεθεί στο δημόσιο API.
- Διορθώθηκε ένα πρόβλημα με τη σειρά των εργασιών στο "fld1".
- Η ταξινόμηση είναι πλέον πάντα σταθερή με την πάροδο του χρόνου (Redesigned QuickSort).
- Ο προεπιλεγμένος αριθμός νημάτων BLAS είναι πλέον ίσος με τον αριθμό των νημάτων της CPU στην αρχιτεκτονική ARM και τον μισό αριθμό των νημάτων της CPU σε άλλες αρχιτεκτονικές.
- Printf: Επεξεργασμένα μηνύματα λάθους για λανθασμένη μορφή συμβολοσειρών για καλύτερη αναγνωσιμότητα.
- Προφίλ: Νέα συνάρτηση "Profile.take_heap_snapshot(file)" η οποία γράφει ένα αρχείο σε μορφή ".heapsnapshot" που βασίζεται σε JSON που υποστηρίζεται από το Chrome.
- Προστέθηκε υποστήριξη για την προδιαγραφή Unicode 15.
- Οι ένθετοι συνδυασμοί πλειάδων και ονομασμένων πλειάδων χαρακτήρων μπορούν τώρα να χρησιμοποιηθούν ως παράμετροι τύπου.
Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα σχετικά, μπορείτε να συμβουλευτείτε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.