Γλώσσα προγραμματισμού Flow9 ανοιχτού κώδικα

Περιοχή 9 Εταιρεία άνοιξε πηγαίους κώδικες λειτουργικών γλωσσών προγραμματισμού Flow9, επικεντρώθηκε στη δημιουργία διεπαφών χρήστη. Ο κώδικας στη γλώσσα Flow9 μπορεί να μεταγλωττιστεί σε εκτελέσιμα αρχεία για Linux, iOS, Android, Windows και macOS και να μεταφραστεί σε εφαρμογές ιστού σε HTML5/JavaScript (WebAssembly) ή σε κείμενα πηγής σε Java, D, Lisp, ML και C++. Κώδικας μεταγλωττιστή Άνοιξε έχει άδεια χρήσης σύμφωνα με το GPLv2 και η τυπική βιβλιοθήκη έχει άδεια χρήσης βάσει της άδειας MIT.

Η γλώσσα αναπτύσσεται από το 2010 ως μια καθολική και πολυπλατφορμική εναλλακτική του Adobe Flash. Το Flow9 τοποθετείται ως πλατφόρμα για τη δημιουργία σύγχρονων γραφικών διεπαφών που μπορούν να χρησιμοποιηθούν τόσο για τον Ιστό όσο και για επιτραπέζιους και φορητές εφαρμογές. Το έργο χρησιμοποιείται σε πολλά εσωτερικά έργα Area9 και αρχικά ονομαζόταν Flow, αλλά πριν ανοίξει ο κώδικας αποφασίστηκε να μετονομαστεί σε Flow9 για να αποφευχθούν παρεμβολές με τον στατιστικό αναλυτή Ροή από το Facebook.

Το Flow9 συνδυάζει μια γνώριμη σύνταξη παρόμοια με τη γλώσσα C (βλ σύγκριση κώδικα σε Flow9 και JavaScript), με λειτουργικά εργαλεία προγραμματισμού στο στυλ ML и ευκαιρίες Γλώσσες ειδικές για τον τομέα που επικεντρώνονται στην επίλυση συγκεκριμένων προβλημάτων όσο το δυνατόν πιο αποτελεσματικά (για το Flow9 πρόκειται για ανάπτυξη διεπαφής). Το Flow9 έχει σχεδιαστεί για να χρησιμοποιεί αυστηρή πληκτρολόγηση, αλλά εάν είναι απαραίτητο, είναι δυνατή η χρήση δυναμικής πληκτρολόγησης με αυτόματη ανίχνευση τύπων, καθώς και συνδέσεις. Υποστηρίζεται ο πολυμορφισμός (μία συνάρτηση μπορεί να επεξεργαστεί δεδομένα διαφορετικών τύπων), η δυνατότητα δημιουργίας υποτύπων, λειτουργικών μονάδων, πινάκων, κατακερματισμών, εκφράσεων λάμδα.

Ο ίδιος κώδικας μπορεί να μεταγλωττιστεί για διαφορετικές πλατφόρμες, χωρίς να απαιτείται ξεχωριστή μεταφορά και αλλαγές στον κώδικα. Η ίδια εφαρμογή μπορεί να εκτελεστεί σε πρόγραμμα περιήγησης, σε φορητές συσκευές με οθόνες αφής και σε επιτραπέζια συστήματα με πληκτρολόγιο και ποντίκι. Προσφέρουμε μια έτοιμη συλλογή στοιχείων με στοιχεία διεπαφής σε στυλ React, σχεδιασμένα σύμφωνα με την έννοια του Google Material Design. Ο σχεδιασμός μπορεί να ελεγχθεί μέχρι το επίπεδο pixel. Για να ορίσετε στυλ μπορεί κανείς να χρησιμοποιήστε τυπική σύνταξη CSS. Για απόδοση σε Linux, macOS και Windows όταν γίνεται μεταγλώττιση σε C++ χρησιμοποιούνται backend που βασίζεται σε Qt με OpenGL και όταν μεταγλωττίζεται σε Java - JavaFX.

Χάρη στη χρήση τεχνικών λειτουργικού προγραμματισμού, ο γραπτός κώδικας και τα στοιχεία διεπαφής μπορούν εύκολα να δανειστούν από άλλα έργα. Η γλώσσα είναι πολύ συμπαγής και περιλαμβάνει μόνο 25 λέξεις-κλειδιά και η γραμματική περιγραφή χωράει σε 255 γραμμές μαζί με σχόλια. Για την υλοποίηση της ίδιας λειτουργικότητας στο Flow9, απαιτείται 2-4 φορές λιγότερος κώδικας από ό,τι σε HTML+CSS+JavaScript, C#, Swift ή Java. Για παράδειγμα, εάν για τη δοκιμαστική εφαρμογή Tic-Tac-Toe από οδηγούς για το React χρειάστηκε να γράψουμε 200 γραμμές κώδικα σε React/JavaScript/HTML/CSS, για το Flow9 καταφέραμε να το κάνουμε σε 83 γραμμές. Επιπλέον, αυτή η εφαρμογή μπορεί όχι μόνο να εκκινηθεί στο πρόγραμμα περιήγησης, αλλά και να μεταγλωττιστεί με τη μορφή εφαρμογών για κινητά για iOS και Android.

Η πλατφόρμα περιλαμβάνει τον κύριο μεταγλωττιστή flowc, γραμμένο στο Flow9 και ικανό να λειτουργεί ως διακομιστής μεταγλώττισης. μεταγλωττιστής αναφοράς ροής (γραμμένο σε άρθρωση δάκτυλου) πρόγραμμα εντοπισμού σφαλμάτων με υποστήριξη πρωτοκόλλου gdb. σύστημα δημιουργίας προφίλ με αναλυτή μνήμης και αποσφαλμάτωση συλλέκτη απορριμμάτων. JIT compiler για συστήματα x86_64. διερμηνέας για ARM και άλλες πλατφόρμες. εργαλεία για επιλεκτική μεταγλώττιση σε C++ και Java των πιο κρίσιμων για την απόδοση τμημάτων του κώδικα. πρόσθετα για ενοποίηση με επεξεργαστές κώδικα Visual Code, Sublime Text, Kate και Emacs. γεννήτρια ανάλυσης (PEG).

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο