Open-Source-Programmiersprache Flow9

Area9 Unternehmen geöffnet Quellcodes funktionaler Programmiersprachen Flow9, konzentrierte sich auf die Erstellung von Benutzeroberflächen. Code in der Flow9-Sprache kann in ausführbare Dateien für Linux, iOS, Android, Windows und macOS kompiliert und in Webanwendungen in HTML5/JavaScript (WebAssembly) oder Quelltexte in Java, D, Lisp, ML und C++ übersetzt werden. Compiler-Code ist offen ist unter GPLv2 lizenziert und die Standardbibliothek ist unter der MIT-Lizenz lizenziert.

Die Sprache entwickelt sich seit 2010 als universelle und plattformübergreifende Alternative zu Adobe Flash. Flow9 ist als Plattform für die Erstellung moderner grafischer Oberflächen positioniert, die sowohl für das Web als auch für Desktop- und mobile Anwendungen verwendet werden können. Das Projekt wird in vielen internen Area9-Projekten verwendet und hieß ursprünglich Flow. Vor dem Öffnen des Codes wurde jedoch beschlossen, es in Flow9 umzubenennen, um Störungen des statistischen Analysators zu vermeiden Flow von Facebook.

Flow9 kombiniert eine bekannte Syntax ähnlich der C-Sprache (siehe Vergleich Code in Flow9 und JavaScript), mit funktionalen Programmiertools im Stil ML и Chancen domänenspezifische Sprachen konzentrieren sich darauf, bestimmte Probleme so effizient wie möglich zu lösen (für Flow9 ist dies die Schnittstellenentwicklung). Flow9 ist für die Verwendung einer strikten Typisierung konzipiert. Bei Bedarf ist jedoch auch die Verwendung dynamischer Typisierung mit automatischer Typerkennung möglich Links. Unterstützt wird Polymorphismus (eine Funktion kann Daten unterschiedlichen Typs verarbeiten), die Möglichkeit, Untertypen, Module, Arrays, Hashes und Lambda-Ausdrücke zu erstellen.

Derselbe Code kann für verschiedene Plattformen kompiliert werden, ohne dass eine separate Portierung und Änderungen am Code erforderlich sind. Dieselbe Anwendung kann in einem Browser, auf mobilen Geräten mit Touchscreen und auf Desktop-Systemen mit Tastatur und Maus ausgeführt werden. Wir bieten eine fertige Sammlung von Komponenten mit Schnittstellenelementen im React-Stil an, die nach dem Google Material Design-Konzept gestaltet sind. Das Design kann bis auf Pixelebene gesteuert werden. Um Stile festzulegen kann man Verwenden Sie die Standard-CSS-Syntax. Zum Rendern unter Linux, macOS und Windows bei Kompilierung in C++ benutzt Backend basierend auf Qt mit OpenGL und bei Kompilierung in Java - JavaFX.

Dank der Verwendung funktionaler Programmiertechniken können die geschriebenen Code- und Schnittstellenkomponenten problemlos aus anderen Projekten übernommen werden. Die Sprache ist sehr kompakt und enthält nur 25 Schlüsselwörter, und die Grammatikbeschreibung passt zusammen mit Kommentaren in 255 Zeilen. Um identische Funktionen auf Flow9 zu implementieren, ist 2–4 Mal weniger Code erforderlich als auf HTML+CSS+JavaScript, C#, Swift oder Java. Wenn zum Beispiel für die Testanwendung Tic-Tac-Toe von Führer Für React mussten wir 200 Zeilen Code in React/JavaScript/HTML/CSS schreiben, für Flow9 haben wir es in 83 Zeilen geschafft. Darüber hinaus kann diese Anwendung nicht nur im Browser gestartet, sondern auch in Form mobiler Anwendungen für iOS und Android kompiliert werden.

Die Plattform umfasst den Haupt-FlowC-Compiler, der in Flow9 geschrieben ist und als Kompilierungsserver fungieren kann; Flow-Referenz-Compiler (geschrieben in haxe); Debugger mit GDB-Protokollunterstützung; ein Profiling-System mit einem Speicheranalysator und einem Garbage-Collector-Debugger; JIT-Compiler für x86_64-Systeme; Dolmetscher für ARM und andere Plattformen; Tools zur selektiven Kompilierung der leistungskritischsten Teile des Codes in C++ und Java; Plugins zur Integration mit den Code-Editoren Visual Code, Sublime Text, Kate und Emacs; Parser-Generator (PEG).

Source: opennet.ru

Kommentar hinzufügen