Auto语言发布v0.2版
rust
print("Hello, Auto v0.2!")Auto语言发布v0.2版啦!
v0.2是Auto语言的重要基础版本,包含 479个commit(2024年9月至2025年1月),奠定了编译器和生态系统的核心基础。
下面是AutoLang相关的仓库:
Auto语言的语法概览和应用场景,可以参考仓库的README页面。
欢迎大家关注。
版本内容
v0.2版在v0.1的基础上,重点完善了编译器架构和多目标转译能力。
v0.2版的成果有:
多目标转译器:
- C转译器(a2c):完整的C代码生成,支持stdio.h实现、布尔类型、结构体初始化类型检查
- Rust转译器(a2r):Rust代码生成,支持结构体、枚举、F-字符串(FStr)
- Python转译器(a2p):Python代码生成,支持结构体、枚举、方法(Phases 1-8)
- JavaScript转译器(a2j):JavaScript代码生成,CLI集成(Phase 10)
核心语言特性:
- 基础语法:算术运算符、一元和前缀运算符、if/else条件语句、for循环(带初始化器和索引)、when语句模式匹配
- 类型系统:
int、uint、float、bool、byte、i8、u8、str、cstr、数组类型[]T、指针类型*T - 变量声明:
var(动态类型)、let(不可变绑定)、mut(可变绑定) - OOP系统:单继承(
is关键字)、Spec多态(trait系统和委托语法)、用户类型方法 - Lambda匿名函数
编译器架构:
- Atom宏系统:
value!、atom!宏,Builder Pattern实现,AST到Atom转换 - miette错误系统集成:源码片段显示、结构化错误类型、IDE友好的诊断输出
- 基础类型推断:表达式类型推断、方法调用类型推断、枚举类型推断
- Atom宏系统:
值系统独立化(auto-val crate):
AutoStr替代StringArray类型(Vec<Value>)Obj对象类型- 算术运算符、对象和数组方法、类型转换器
工具链:
- AutoGen:新的auto-gen CLI,AST代码生成,测试用例支持
- AutoShell:交互式Shell,AutoLang REPL集成,历史记录,Tab补全(reedline集成)
- 标准库组织:
io.at(IO函数)、sys.at(系统函数),模块化文件组织
Widget/AURA基础探索:
- widget/model/view解析
- 动态视图(dyna view)
- 事件处理器(on语句)
- 状态变量和事件绑定
测试基础设施:
- a2c测试:100+测试用例
- a2r测试:002-012批次
- a2p和a2j测试覆盖
从v0.1的主要变化
新增功能
- 多transpiler支持 — C、Rust、Python、JavaScript
- Spec多态系统 — trait和委托
- 错误报告系统 — miette集成
- AutoShell — 交互式REPL
- Widget/AURA — 早期UI框架探索
重大改进
- 类型推断 — 基础类型推断子系统
- Atom宏系统 — AST构造DSL
- 标准库组织 — 模块化stdlib
- 测试覆盖 — 完善的测试用例
未来规划
v0.3版计划增加以下功能:
- 泛型编程系统 — 完整的泛型支持
- 多后端UI生成 — Vue、Jetpack Compose、ArkTS、Tauri
- 增量编译(AIE) — Auto Incremental Engine架构
- BigVM迁移 — 替代AutoVM作为默认VM
- 异步任务系统 — Task/Msg框架
届时Auto语言的类型系统和编译器架构将更加完善,为后续的大规模应用开发奠定坚实基础。