Flow9程式語言開源

九區公司 開了 函數式程式語言原始碼 Flow9,專注於創建使用者介面。 Flow9 語言的程式碼可以編譯為 Linux、iOS、Android、Windows 和 macOS 的可執行文件,並翻譯為 HTML5/JavaScript (WebAssembly) 的 Web 應用程式或 Java、D、Lisp、ML 和 C++ 的來源文字。編譯程式碼 是開放的 根據 GPLv2 獲得許可,標準庫根據 MIT 許可證獲得許可。

該語言自 2010 年以來一直在開發,作為 Adob​​e Flash 的通用、多平台替代品。 Flow9 定位為建立現代圖形介面的平台,可用於 Web、桌面和行動應用程式。該專案在許多Area9內部專案中使用,最初稱為Flow,但在開放程式碼之前決定將其重新命名為Flow9以避免干擾統計分析器 來自臉書。

Flow9 結合了類似於 C 語言的熟悉語法(請參閱 對照 Flow9 和 JavaScript 中的程式碼),以及以下風格的函數式程式設計工具 ML и 機會 特定於領域的語言專注於盡可能有效地解決特定問題(對於 Flow9 來說這是介面開發)。 Flow9 被設計為使用嚴格類型,但如果有必要,可以使用具有自動類型檢測的動態類型,以及 參考。支援多態性(一個函數可以處理不同類型的資料),能夠建立子類型、模組、陣列、雜湊、lambda 表達式。

相同的程式碼可以針對不同的平台進行編譯,無需單獨移植和更改程式碼。相同的應用程式可以在瀏覽器、帶有觸控螢幕的行動裝置以及帶有鍵盤和滑鼠的桌面系統上運行。我們提供現成的元件集合,其中包含 React 風格的介面元素,根據 Google Material Design 概念進行設計。設計可以控製到像素層級。設定樣式 人們可以 使用標準 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行動應用程式的形式。

平台包括主flowc編譯器,用Flow9編寫,能夠作為編譯伺服器工作;流程參考編譯器(寫為 哈克斯);支援 gdb 協定的調試器;帶有記憶體分析器和垃圾收集器調試器的分析系統; x86_64 系統的 JIT 編譯器; ARM 和其他平台的解釋器;用於在 C++ 和 Java 中選擇性編譯程式碼中效能最關鍵部分的工具;用於與程式碼編輯器 Visual Code、Sublime Text、Kate 和 Emacs 整合的插件;解析器產生器(PEG).

來源: opennet.ru

添加評論