Skip to content
📖 Auto 编程语言(主书)本书目录

简介 ​

欢迎阅读《Auto 编程语言》。

Auto 是一门为 AI 时代设计的编程语言。它兼具系统级语言的性能、脚本语言的简洁,以及操作系统的并发模型——三者融于一个统一的设计之中。无论你是在写一个快捷脚本、一个高性能服务器,还是让 AI 代理替你生成代码,Auto 都能让这些工作变得自然而可靠。

本书将从零开始教你 Auto。我们假设你没有任何 Auto 语言的经验。读完本书,你不仅会掌握语法,还会理解其背后的设计哲学——并且沿途亲手构建真实的项目。

Auto 是什么? ​

Auto 是一门现代编程语言,建立在三个核心概念之上:

  • Task(任务)——轻量级、隔离的工作单元,通过消息进行通信。你可以把它们想象成操作系统中的进程,但存在于语言层面。
  • Mailbox(邮箱)——连接任务的有类型消息队列。在并发单元之间流动的每一条数据都经过邮箱,使通信显式且安全。
  • AutoVM——运行 Auto 代码的虚拟机,提供快速启动、热重载和交互式开发所需的 REPL(读取-求值-打印循环)。

这三个概念构成了我们所说的 AIOS——Auto 智能操作系统。Auto 不仅提供了一门语言,还提供了一个像操作系统一样运作的编程环境:进程、消息传递,以及在底层管理一切的运行时。

如果这听起来很有野心,那确实是。但 Auto 也是一门你可以在一个下午学会的语言。AIOS 架构只在你需要它时才会出现。写第一个程序时,你只需要写代码。

语言即 AIOS ​

大多数编程语言把并发当作事后补充——用库和框架打补丁。Auto 采取了不同的方法:它将编程环境本身视为一个操作系统。

操作系统有进程、进程间通信,以及管理资源的内核。Auto 有任务、邮箱和 AutoVM。这种对应并非偶然。当你编写 Auto 代码时,你不只是在写互相调用的函数——你在定义通过有类型通道通信的任务,运行在一个负责调度、内存和安全管理的虚拟机中。

这就是微内核视角:一个微小而可信的核心(AutoVM)提供基础服务,其他一切——包括并发、错误处理甚至类型检查——都构建为可组合的层。

这种设计带来的好处是深远的。当你的编程语言像操作系统一样运作时,并发就不再令人恐惧。消息传递不再是优化技巧。"我的代码"和"运行时"之间的边界变得清晰而明确。

双模式:VM 与 AOT ​

Auto 提供两种运行方式,它们共享相同的语义。

AutoVM 是开发模式。启动虚拟机,加载代码,然后迭代。改一个函数,保存,立刻看到结果。REPL 让你可以交互式地实验各种表达式。错误即时显示,附带指向问题的清晰提示信息。AutoVM 专为反馈循环而设计——写代码、运行、改进,这个让编程充满活力的循环。

AOT(提前编译)是生产模式。当你准备发布时,将 Auto 程序编译为本地二进制文件。没有虚拟机,没有运行时开销。在 VM 中运行的同一份代码,现在以零成本可执行文件的形式运行,性能可媲美手写的 C 或 Rust 代码。编译器能够执行解释型语言不可能实现的优化,因为它在编译期拥有程序的完整视图。

同一种语言。同一套语义。两种截然不同的执行模式,各自为其目标而优化。开发用 VM,发布用 AOT。两者之间的切换是无缝的。

AI 原生设计 ​

Auto 是为一个由 AI 编写(或至少由 AI 建议)大量代码的世界而设计的。这不是事后补充,而是首要设计目标。

一门语言要成为"AI 原生"意味着什么?三件事:

  1. 高信噪比。 Auto 程序中的每个词元都有意义。几乎没有样板代码、没有强制的标注、没有仪式性的语法。当 AI 生成 Auto 代码时,它产生的每个词元更有可能是关键的——也就意味着更有可能是正确的。

  2. 可预测的语义。 Auto 避免令人意外的边界情况。语言的行为符合你的预期,始终如一。这使得 AI 模型更容易生成正确的代码,因为暗藏的陷阱更少。

  3. 渐进式复杂度。 Auto 从简单开始,在你需要时才增加威力。你只用变量、函数和控制流就能写出可运行的程序。类型、泛型、Actor 和编译期元编程都在那里等着你——但它们绝不会在起步时碍事。

如果你是亲自写 Auto 的人类开发者,这些特性意味着更少的代码需要阅读、编写和调试。如果你是生成 Auto 代码的 AI,它们意味着每个词元能产生更多正确的输出。无论如何,你都是赢家。

本书如何使用 ​

本书通过五语言格式来教授 Auto。每个代码清单展示 Auto 版本,并附带 Rust、Python、C 和 TypeScript 的等效代码。如果你已经了解其中一种语言,这种对比将成为你的锚点。如果你都不了解,也不必担心——Auto 代码本身自成一体,周围的文字会解释一切。

本书分为三个阶段:

  • 第一阶段:Auto 作为脚本(第 1–5 章)。你将学习基础——变量、函数、控制流、集合——并在 AutoVM 中运行一切。没有类型,没有复杂性。只有能运行的代码。
  • 第二阶段:Auto 作为系统(第 6–14 章)。你将加入类型、枚举、错误处理、内存管理和泛型。这是 Auto 展示其系统级语言基因的地方。
  • 第三阶段:Auto 作为 AIOS(第 15–22 章)。你将解锁 Auto Actor 模型、异步编程、编译期元编程和标准库的全部威力。在这里,Auto 成为你代码的操作系统。

每个阶段建立在前一个阶段之上。当你到达第三阶段时,你已经有了理解 Auto 并发模型为何如此设计的基础——并且已经通过构建真实项目证明了这一点。

本书适合谁 ​

本书面向两类读者。

初学者,想通过 Auto 学习编程。第一阶段就是为你而写。它用 Auto 简洁的语法介绍编程概念——变量、函数、循环——不会用类型理论或内存管理让你感到不知所措。如果你从未写过一行代码,从这里开始。

有经验的开发者,来自 Rust、Python、C 或 TypeScript。你会发现五语言格式特别有用:每个新概念都会用你已经熟悉的语言展示,这样你可以将已有的心智模型映射到 Auto 的做法上。你可能想快速浏览第一阶段,在第二阶段放慢脚步——因为 Auto 的类型系统和内存模型会开始与你习惯的方式有所不同。

阅读本书不需要你掌握任何特定的语言。但你需要对"编程是什么"有一个大致的了解。如果"变量赋值"这个词对你毫无意义,建议先阅读一本编程入门书籍,然后再回来。

本书约定 ​

本书使用以下约定:

  • 终端命令以 $ 开头。$ 之后的内容是你需要输入的,之前的是 Shell 提示符。

    $ auto run hello.auto
  • 代码清单先展示 Auto 代码,然后是其他语言的对比。一个清单可能看起来像这样:

    // Auto
    fn greet(name) {
        print("Hello, {name}!")
    }

    接着是 Rust、Python、C 和 TypeScript 的等效代码。

  • 粗体用于首次引入新术语时。

  • 斜体用于强调和文件名。

现在,让我们开始吧。翻到第 1 章,你将安装 Auto、编写第一个程序,并看到这门语言运转起来。

基于 MIT 许可发布。