Flow9 プログラミング言語オープンソース

エリア9カンパニー オープン 関数型プログラミング言語のソースコード Flow9、ユーザーインターフェイスの作成に重点を置いています。 Flow9 言語のコードは、Linux、iOS、Android、Windows、macOS 用の実行可能ファイルにコンパイルでき、HTML5/JavaScript (WebAssembly) の Web アプリケーションまたは Java、D、Lisp、ML、および C++ のソース テキストに翻訳できます。 コンパイラコード 開いている は GPLv2 に基づいてライセンスされており、標準ライブラリは MIT ライセンスに基づいてライセンスされています。

この言語は、Adobe Flash に代わるユニバーサルでマルチプラットフォームな言語として 2010 年から開発されてきました。 Flow9 は、Web とデスクトップおよびモバイル アプリケーションの両方に使用できる最新のグラフィカル インターフェイスを作成するためのプラットフォームとして位置付けられています。 このプロジェクトは多くの内部 Area9 プロジェクトで使用されており、当初は Flow と呼ばれていましたが、コードを公開する前に、統計アナライザーとの干渉を避けるために Flow9 という名前に変更することが決定されました。 Flow フェイスブックから。

Flow9 は、C 言語に似た使い慣れた構文を組み合わせています (「 比較 Flow9 および JavaScript のコード)、スタイルの関数型プログラミング ツールを使用 ML и 機会 特定の問題をできるだけ効率的に解決することに重点を置いたドメイン固有言語 (Flow9 の場合、これはインターフェイス開発です)。 Flow9 は厳密な型付けを使用するように設計されていますが、必要に応じて、自動型検出を備えた動的型付けを使用することもできます。 リンク。 ポリモーフィズムがサポートされており (XNUMX つの関数で異なる型のデータを処理できます)、サブタイプ、モジュール、配列、ハッシュ、ラムダ式を作成する機能がサポートされています。

コードを個別に移植したり変更したりする必要がなく、同じコードを異なるプラットフォーム用にコンパイルできます。 同じアプリケーションをブラウザ、タッチ スクリーンを備えたモバイル デバイス、キーボードとマウスを備えたデスクトップ システムで実行できます。 Google マテリアル デザインのコンセプトに従って設計された、React スタイルのインターフェイス要素を備えた既製のコンポーネントのコレクションを提供します。 デザインをピクセルレベルまでコントロールできます。 スタイルを設定するには 1ことができます 標準の CSS 構文を使用します。 C++ でコンパイルした場合の Linux、macOS、および Windows でのレンダリング用 中古 OpenGL を使用した Qt に基づくバックエンド、および Java (JavaFX) でコンパイルされた場合。

関数型プログラミング技術を使用しているため、記述されたコードとインターフェイス コンポーネントを他のプロジェクトから簡単に借用できます。 この言語は非常にコンパクトで、キーワードは 25 個のみで、文法の説明はコメントとともに 255 行に収まります。 Flow9 で同一の機能を実装するには、HTML+CSS+JavaScript、C#、Swift、または Java よりも 2 ~ 4 倍少ないコードが必要です。 たとえば、テスト アプリケーション Tic-Tac-Toe の場合、 ガイド React の場合、React/JavaScript/HTML/CSS で 200 行のコードを記述する必要がありましたが、Flow9 の場合は 83 行で完了しました。 さらに、このアプリケーションはブラウザーで起動するだけでなく、iOS および Android 用のモバイル アプリケーションの形式にコンパイルすることもできます。

このプラットフォームには、Flow9 で書かれ、コンパイル サーバーとして機能するメインの flowc コンパイラが含まれています。 フローリファレンスコンパイラ(で書かれています) ヘイクス); gdb プロトコルをサポートするデバッガ。 メモリ アナライザーとガベージ コレクター デバッガーを備えたプロファイリング システム。 x86_64 システム用の JIT コンパイラ。 ARM およびその他のプラットフォーム用のインタープリタ。 コードの最もパフォーマンスが重要な部分を C++ および Java で選択的にコンパイルするためのツール。 コードエディタ Visual Code、Sublime Text、Kate、Emacs と統合するためのプラグイン。 パーサージェネレーター (PEG).

出所: オープンネット.ru

コメントを追加します