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

添加评论