九區公司 函數式程式語言原始碼 專注於創建使用者介面。用 Flow9 語言寫的程式碼可以編譯成執行檔。 Linux,IOS, Android, Windows и macOS並被翻譯成 HTML5/JavaScript (WebAssembly) Web 應用程式或 Java、D、Lisp、ML 和 C++ 原始程式碼。編譯器程式碼 根據 GPLv2 獲得許可,標準庫根據 MIT 許可證獲得許可。
該語言自 2010 年以來一直在開發,作為 Adobe Flash 的通用、多平台替代品。 Flow9 定位為建立現代圖形介面的平台,可用於 Web、桌面和行動應用程式。該專案在許多Area9內部專案中使用,最初稱為Flow,但在開放程式碼之前決定將其重新命名為Flow9以避免干擾統計分析器 來自臉書。
Flow9 結合了類似於 C 語言的熟悉語法(請參閱 Flow9 和 JavaScript 中的程式碼),以及以下風格的函數式程式設計工具 и 特定於領域的語言專注於盡可能有效地解決特定問題(對於 Flow9 來說這是介面開發)。 Flow9 被設計為使用嚴格類型,但如果有必要,可以使用具有自動類型檢測的動態類型,以及 。支援多態性(一個函數可以處理不同類型的資料),能夠建立子類型、模組、陣列、雜湊、lambda 表達式。
相同的程式碼可以針對不同的平台進行編譯,無需單獨移植和更改程式碼。相同的應用程式可以在瀏覽器、帶有觸控螢幕的行動裝置以及帶有鍵盤和滑鼠的桌面系統上運行。我們提供現成的元件集合,其中包含 React 風格的介面元素,根據 Google Material Design 概念進行設計。設計可以控製到像素層級。設定樣式 使用標準 CSS 語法。以便在渲染時使用。 Linux, macOS и Windows 在 C++ 中編譯時 後端基於帶有 OpenGL 的 Qt,並且在 Java 中編譯時為 JavaFX。
由於使用了函數式程式設計技術,編寫的程式碼和介面元件可以很容易地從其他項目借用。語言非常緊湊,僅包含 25 個關鍵字,語法描述和註釋共 255 行。要在 Flow9 上實現相同的功能,所需的程式碼比 HTML+CSS+JavaScript、C#、Swift 或 Java 少 2-4 倍。例如,如果測試應用程式 Tic-Tac-Toe 來自 React 需要 200 行 React/JavaScript/HTML/CSS 程式碼,而 Flow9 僅需 83 行。此外,該應用程式不僅可以在瀏覽器中運行,還可以編譯成 iOS 和 iOS 行動應用程式。 Android.
平台包括主flowc編譯器,用Flow9編寫,能夠作為編譯伺服器工作;流程參考編譯器(寫為 );支援 gdb 協定的調試器;帶有記憶體分析器和垃圾收集器調試器的分析系統; x86_64 系統的 JIT 編譯器; ARM 和其他平台的解釋器;用於在 C++ 和 Java 中選擇性編譯程式碼中效能最關鍵部分的工具;用於與程式碼編輯器 Visual Code、Sublime Text、Kate 和 Emacs 整合的插件;解析器產生器().
來源: opennet.ru
