Sumber terbuka bahasa pengaturcaraan Flow9

Syarikat Kawasan9 dibuka kod sumber bahasa pengaturcaraan berfungsi Flow9, menumpukan pada mencipta antara muka pengguna. Kod dalam bahasa Flow9 boleh disusun ke dalam fail boleh laku untuk Linux, iOS, Android, Windows dan macOS, dan diterjemahkan ke dalam aplikasi web dalam HTML5/JavaScript (WebAssembly) atau teks sumber dalam Java, D, Lisp, ML dan C++. Kod pengkompil ia terbuka dilesenkan di bawah GPLv2 dan perpustakaan standard dilesenkan di bawah lesen MIT.

Bahasa ini telah dibangunkan sejak 2010 sebagai alternatif universal dan berbilang platform kepada Adobe Flash. Flow9 diletakkan sebagai platform untuk mencipta antara muka grafik moden yang boleh digunakan untuk kedua-dua Web dan aplikasi desktop dan mudah alih. Projek ini digunakan dalam banyak projek Area9 dalaman dan pada asalnya dipanggil Flow, tetapi sebelum membuka kod, ia telah memutuskan untuk menamakan semula kepada Flow9 untuk mengelakkan gangguan dengan penganalisis statistik Aliran daripada Facebook.

Flow9 menggabungkan sintaks biasa yang serupa dengan bahasa C (lihat perbandingan kod dalam Flow9 dan JavaScript), dengan alat pengaturcaraan berfungsi dalam gaya ML ΠΈ peluang bahasa khusus domain menumpukan pada menyelesaikan masalah tertentu secekap mungkin (untuk Flow9 ini adalah pembangunan antara muka). Flow9 direka bentuk untuk menggunakan penaipan yang ketat, tetapi jika perlu, adalah mungkin untuk menggunakan penaipan dinamik dengan pengesanan jenis automatik, serta pautan. Polimorfisme disokong (satu fungsi boleh memproses data pelbagai jenis), keupayaan untuk mencipta subjenis, modul, tatasusunan, cincangan, ungkapan lambda.

Kod yang sama boleh disusun untuk platform yang berbeza, tanpa memerlukan pengalihan berasingan dan perubahan pada kod. Aplikasi yang sama boleh dijalankan dalam penyemak imbas, pada peranti mudah alih dengan skrin sentuh dan pada sistem desktop dengan papan kekunci dan tetikus. Kami menawarkan koleksi komponen siap sedia dengan elemen antara muka dalam gaya React, direka bentuk mengikut konsep Reka Bentuk Bahan Google. Reka bentuk boleh dikawal hingga ke tahap piksel. Untuk menetapkan gaya seseorang boleh gunakan sintaks CSS standard. Untuk pemaparan pada Linux, macOS dan Windows apabila disusun dalam C++ digunakan bahagian belakang berdasarkan Qt dengan OpenGL, dan apabila disusun dalam Java - JavaFX.

Terima kasih kepada penggunaan teknik pengaturcaraan berfungsi, kod bertulis dan komponen antara muka boleh dengan mudah dipinjam daripada projek lain. Bahasa ini sangat padat dan mengandungi hanya 25 kata kunci, dan huraian tatabahasa sesuai dengan 255 baris bersama-sama dengan ulasan. Untuk melaksanakan fungsi yang sama pada Flow9, 2-4 kali lebih sedikit kod diperlukan berbanding HTML+CSS+JavaScript, C#, Swift atau Java. Sebagai contoh, jika untuk aplikasi ujian Tic-Tac-Toe dari panduan untuk React diperlukan menulis 200 baris kod dalam React/JavaScript/HTML/CSS, untuk Flow9 kami berjaya melakukannya dalam 83 baris. Lebih-lebih lagi, aplikasi ini bukan sahaja boleh dilancarkan dalam pelayar, tetapi juga disusun dalam bentuk aplikasi mudah alih untuk iOS dan Android.

Platform ini termasuk pengkompil flowc utama, ditulis dalam Flow9 dan mampu berfungsi sebagai pelayan kompilasi; penyusun rujukan aliran (ditulis dalam buku jari); penyahpepijat dengan sokongan protokol gdb; sistem pemprofilan dengan penganalisis memori dan penyahpepijat pemungut sampah; Penyusun JIT untuk sistem x86_64; jurubahasa untuk ARM dan platform lain; alatan untuk penyusunan terpilih dalam C++ dan Java bagi bahagian kod yang paling kritikal prestasi; pemalam untuk penyepaduan dengan editor kod Kod Visual, Teks Sublime, Kate dan Emacs; penjana parser (PEG).

Sumber: opennet.ru

Tambah komen