Auto语言发布v0.1版
rust
print("Hello, Auto v0.1!")Auto语言发布v0.1版啦!
Auto语言是一门跨生态的“融合语言”,基本理念是:
- 语言即系统(Language as OS):微内核、模块化、多外设。
- 面向场景(Scenario Oriented):面向不同场景,提供所需的语言特性。
- 动静结合(Dynamic+Static):动态和静态类型相辅相成,动态解释和静态编译有机结合。
- 生态融合(Ecosytem Fusion):面向C、Rust、Javascript、Python等多个生态。
Auto语言应用在汽车行业,未来会不断探索,拓宽边界。
Auto语言的远景目标是“万物自动化”(One Lang to Rule Them All)。
下面是AutoLang相关的仓库:
Auto语言的语法概览和应用场景,可以参考仓库的README页面。
欢迎大家关注。
版本内容
v0.1版是Auto语言的第一个版本, 对Auto语言大部分基本语法进行了探索, 并对Auto生态进行了初步尝试。
v0.1版的成果有:
- 实现了绝大多数基本语法,包括:
- 基本数据类型(
int,uint,byte,bool,float,str) - 复合数据类型(数组、对象、节点、网格)
- 控制流(
if-else,for,when) - 函数(
fn) - 类与方法(
type) - 接口(
spec) - 组合模式(
has) - 编译器运算(基于解释器实现)
- 模块化(
mod)
- 基本数据类型(
- 最简单的标准库:
str
- 解释器:类似
python解释器,可以交互式运行Auto代码。 - 转译器:
C: 转译成C语言。Rust:转译成Rust语言。
- 编译工具和包管理器
AutoMan:- Auto语言本身作为配置语言
- 支持Auto语言和C语言的混合工程
- 支持基于Auto语言配置的工程依赖管理
- 支持依赖下载和硬件SDK下载
- 支持
cmake、IAR、GHS等编译环境的工程搭建
- UI库
AutoUI:- 翻译成Rust代码
- 基于
gpui和gpui-components
- 代码生成工具
AutoGen:- 可以依赖Auto语言生成任意格式的文本,如XML、HTML、C代码等。
总体而言,v0.1版完成了”可行性探索“的基本任务, 并做出了AutoMan和AutoUI两个基本工具, 能够给C语言主项目提供一定的帮助了。
现在Auto语言还处于”实验调试“(PreAlpha)阶段,各种基本的特性都不稳定, 所以并不建议大家使用,看看就好。相信下一版就能有很大的改善。
发布这个版本,是因为基本完成了调研和原型任务,并开发出了两个初步能用的生态工具, 也算是立下了第一块里程碑。千里之行,始于足下!
接下来的重点任务,是在团队内引入这两个工具,真正用起来。
未来规划
v0.2版预计在6月份发布,计划增加以下功能:
- 编译器:
- 完整的C和Rust转译:将所有的Auto语言都转译成C和Rust
- Javascript转译:配合AutoUI,可以生成Vue.js的界面
- Python转译:可以调用Python的AI库
- 标准库初步成型:
- io:提供文件读写功能。
- math:提供常见的数学函数。
- str:完善的字符串处理功能,包括对unicode的支持
- data:类似numpy/pandas的数据处理库
- net: 基本的网络库,初步实现(CAN/LIN)网络。
- AutoUI基本可用:
- 实现大部分常用的UI组件
- 业务级别的UI组件包
- 基于AutoUI开发几款应用:
- AutoMan的UI界面
- 类似JupyterNotebook的交互式开发环境
- 基于Vue.js的web端输出,做到和桌面输出显示效果哦一致。
- 完善的AutoMan
- 用于公司内的C语言工程的编译构建管理。
- 添加AutoTest功能,完善C语言的测试框架。
- 添加AutoDoc功能,生成C语言代码的文档。
- 应用安装功能。
- 添加UI界面。
- AutoShell:跨平台的通用命令行。
- 结合Shell和Auto的语法
- 基于nushell实现
- AutoIDE:
- LSP支持
- 基于Zed或VScode实现
- Auto->tree-sitter支持
- 基于Auto语言的IDE插件系统
- 文档:
- Auto语言官方教程
- 标准库文档
- AutoUI/AutoMan/AutoShell相关的文档
到时候Auto语言语法和标准库基本确立,语言生态也初具雏形,就可以广邀群豪,共创大业了。