FluxSysLang/Flux

GitHub: FluxSysLang/Flux

Flux 是一种通用的静态类型系统编程语言,兼具 C 的性能与 Python 的可读性,旨在提供对二进制数据的精确控制。

Stars: 8 | Forks: 0

# Flux ### *一种通用的、静态类型的、广泛中级的、面向对象的编译型编程语言,旨在轻松控制数据。*

## 什么是 Flux? Flux 是一种系统级编程语言,兼具 C 的性能与 Python 的可读性。它为所有人而生,旨在将你可能需要的所有强大特性集于一处。在一种语言中编写性能关键代码,然后再从另一种语言调用它的日子,已一去不复返。 **特征:** - 手动内存管理 - 不与你作对的编译器 - 一流的数据控制特性 - 贯穿始终的语法和结构一致性 - 丰富的运算符集,包含独特的按位运算符集 - 除非另有指定,所有内容均分配在栈上 - 除非另有指定,所有内容均初始化为零 - 支持自定义中缀运算符 - 无需 SFINAE 的模板 - 可选的所有权机制,无需借用检查器 ## 设计理念 Flux 遵循“高信任”模型: - 语言提供强大的工具 - 程序员负责正确地使用它们 - 显式优于隐式 - 性能与控制权优于安全保证 这意味着: - 手动内存管理(无垃圾回收) - 无借用检查器(由你管理生命周期) - 在需要时直接访问硬件 - 完整的编译期编程能力*(即将推出) ## 理想用例 Flux 非常适合以下场景: - **嵌入式系统** - 直接访问硬件寄存器 - **网络协议** - 零拷贝数据包解析 - **文件格式处理** - 二进制数据解释 - **游戏引擎** - 内存高效的实体系统 - **设备驱动程序** - 内存映射 I/O - **性能关键型代码** - 当你需要 C 级别的控制时 ## 当前状态 Flux 正在积极开发中。语言规范已完成,但实现工作仍在进行中。 标准库是当前的重点。 **已完成:** - [完整的语言规范](https://github.com/kvthweatt/FluxLang/blob/main/docs/Specs/language_specification.md) - [关键字参考](https://github.com/kvthweatt/FluxLang/blob/main/docs/keyword_reference.md) - Flux [风格指南](https://github.com/kvthweatt/FluxLang/blob/main/docs/style_guide.md) - 面向[初学者](https://github.com/kvthweatt/FluxLang/blob/main/docs/style_guide.md)和[进阶者](https://github.com/kvthweatt/FluxLang/blob/main/docs/learn_flux_adept.md)的程序员的教程 - 清晰的语法和语义 **正在构建:** - 编译器实现 ✅ - 标准库(开发中) - 构建工具 - IDE(开发中) - 包管理器(开发中) - LSP(开发中) ## 参与其中 - **Discord:** [加入 Flux 社区](https://discord.gg/wVAm2E6ymf) - **贡献:** 项目欢迎贡献者 - **反馈:** 分享你对语言设计的看法 ## 学习资源 - **[语言规范](docs/Specs/language_specification.md)** - 完整的语言参考 - **[入门指南](docs/learn_flux_intro.md)** - 新用户教程 - **[示例](examples/)** - 真实的 Flux 程序 - **[Windows 设置指南](docs/SetupGuides/windows_setup_guide.md)** - **[Linux 设置指南](docs/SetupGuides/linux_setup_guide.md)** ## 示例:完整程序 ``` #import "standard.fx"; struct Packet { unsigned data{8} type; unsigned data{16} length; unsigned data{32} timestamp; }; def main() -> int { byte[7] bytes = [0x01, 0x00, 0x20, 0x5F, 0x12, 0x34, 0x56]; Packet pkt = Packet from bytes; print("Type: \0"); print(pkt.type); print(); print("Length: \0"); print(pkt.length); print(); print("Time: \0"); print(pkt.timestamp); print(); return 0; }; ``` **注意:** Flux 是一种系统编程语言,假定你了解内存管理和底层编程概念。如果你是系统编程新手,请仔细阅读教程文档。 ## 🤝 **贡献** Flux 正在积极开发中,并朝着自举迈进。 **当前状态:** 编译器可用,真实的程序已能运行。 目前仍有一些小的编译器问题存在。 ## ⚖️ **许可证** 版权所有 (C) 2024 Karac Von Thweatt。保留所有权利。
标签:C语言替代, 中间表示, 二进制数据控制, 内核驱动, 后端开发, 嵌入式系统, 底层开发, 手动内存管理, 游戏引擎, 系统编程语言, 编程语言, 编译器, 编译型语言, 网络协议, 网络安全监控, 解析器, 词法分析, 语法分析, 零拷贝, 静态类型, 面向对象, 驱动开发, 高性能计算