Skip to content

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版的成果有:

  1. 多目标转译器:

    • C转译器(a2c):完整的C代码生成,支持stdio.h实现、布尔类型、结构体初始化类型检查
    • Rust转译器(a2r):Rust代码生成,支持结构体、枚举、F-字符串(FStr)
    • Python转译器(a2p):Python代码生成,支持结构体、枚举、方法(Phases 1-8)
    • JavaScript转译器(a2j):JavaScript代码生成,CLI集成(Phase 10)
  2. 核心语言特性:

    • 基础语法:算术运算符、一元和前缀运算符、if/else条件语句、for循环(带初始化器和索引)、when语句模式匹配
    • 类型系统:int、uint、float、bool、byte、i8、u8、str、cstr、数组类型[]T、指针类型*T
    • 变量声明:var(动态类型)、let(不可变绑定)、mut(可变绑定)
    • OOP系统:单继承(is关键字)、Spec多态(trait系统和委托语法)、用户类型方法
    • Lambda匿名函数
  3. 编译器架构:

    • Atom宏系统:value!、atom!宏,Builder Pattern实现,AST到Atom转换
    • miette错误系统集成:源码片段显示、结构化错误类型、IDE友好的诊断输出
    • 基础类型推断:表达式类型推断、方法调用类型推断、枚举类型推断
  4. 值系统独立化(auto-val crate):

    • AutoStr替代String
    • Array类型(Vec<Value>)
    • Obj对象类型
    • 算术运算符、对象和数组方法、类型转换器
  5. 工具链:

    • AutoGen:新的auto-gen CLI,AST代码生成,测试用例支持
    • AutoShell:交互式Shell,AutoLang REPL集成,历史记录,Tab补全(reedline集成)
    • 标准库组织:io.at(IO函数)、sys.at(系统函数),模块化文件组织
  6. Widget/AURA基础探索:

    • widget/model/view解析
    • 动态视图(dyna view)
    • 事件处理器(on语句)
    • 状态变量和事件绑定
  7. 测试基础设施:

    • a2c测试:100+测试用例
    • a2r测试:002-012批次
    • a2p和a2j测试覆盖

从v0.1的主要变化 ​

新增功能 ​

  1. 多transpiler支持 — C、Rust、Python、JavaScript
  2. Spec多态系统 — trait和委托
  3. 错误报告系统 — miette集成
  4. AutoShell — 交互式REPL
  5. Widget/AURA — 早期UI框架探索

重大改进 ​

  1. 类型推断 — 基础类型推断子系统
  2. Atom宏系统 — AST构造DSL
  3. 标准库组织 — 模块化stdlib
  4. 测试覆盖 — 完善的测试用例

未来规划 ​

v0.3版计划增加以下功能:

  1. 泛型编程系统 — 完整的泛型支持
  2. 多后端UI生成 — Vue、Jetpack Compose、ArkTS、Tauri
  3. 增量编译(AIE) — Auto Incremental Engine架构
  4. BigVM迁移 — 替代AutoVM作为默认VM
  5. 异步任务系统 — Task/Msg框架

届时Auto语言的类型系统和编译器架构将更加完善,为后续的大规模应用开发奠定坚实基础。

Released under the MIT License.