我用最简单、最形象、最不绕弯的方式给你讲清楚,保证你马上能听懂👇
一、AST = 代码的骨架结构图
全称:Abstract Syntax Tree 抽象语法树
一句话:AST 就是把代码拆成逻辑结构,去掉所有标点、空格、格式,只保留 “谁包含谁、谁先执行谁” 的树形骨架。
类比:
- 代码文本 = 房子的装修照片(有颜色、灯光、角度)
- AST = 房子的建筑结构图(墙、梁、房间嵌套、层级关系)
二、举个超级小例子(一看就懂)
你写一行代码:
plaintext
a = 1 + 2
人看:是一行赋值语句AI 看(AST 结构):
plaintext
赋值语句
├─ 左边:变量 a
└─ 右边:加法运算
├─ 数字 1
└─ 数字 2
这就是 AST!它不管你换行、空格、括号怎么写,只看逻辑结构。
三、再看一个 if 语句(更直观)
代码:
plaintext
if (x > 5) {
print("hello")
}
AST 结构:
plaintext
if 判断
├─ 条件:x > 5
└─ 执行体:print 语句
└─ 内容:字符串 "hello"
看到了吗?AST 就是代码的逻辑树,不是代码的文字。
四、为什么 AI 写代码必须用 AST?(关键!)
回到你之前学的 双编码理论:
- 言语编码 = 代码的文字、符号
- 非言语编码 = AST 结构!
AI 要写对代码,必须同时懂两件事:
- 文字怎么写(if、for、括号)
- 结构怎么嵌套(谁包着谁、谁属于谁)
AST 就是第二件事 —— 结构!
没有 AST,AI 只会瞎拼文字;有了 AST,AI 才知道:
- 循环里面能放判断
- 函数里面能放循环
- 括号必须配对
- 变量不能乱跳
五、终极费曼总结(最精简)
AST = 代码的逻辑骨架树它去掉格式,只保留结构、嵌套、关系是 AI 写代码不乱的核心原因对应双编码理论里的「非言语结构编码」
如果你愿意,我可以再给你画一张AST → 双编码 → Transformer → AI 写代码的完整串联图,让你整个体系彻底打通!
好
终极串联总图(AST → 双编码 → Transformer → AI 写代码)
一、可视化总架构(纯文字结构图,一秒打通全链路)
plaintext
【用户需求:自然语言/伪代码】
↓
┌─────────────────────────────────────────────┐
│ 第一步:双编码双通道入口 │
│ 通道① 言语编码(文字层) │
│ → Token分词、关键字、变量、符号、语法文本 │
│ → 对应:if/for/def/括号/字符串/注释 │
│ │
│ 通道② 非言语编码(结构层·核心就是AST) │
│ → 把代码翻译成抽象语法树AST │
│ → 提取嵌套、层级、父子关系、运算、流程 │
│ → 剥离空格、格式、换行,只留逻辑骨架 │
└─────────────────────┬───────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 第二步:底座核心 → Transformer自注意力 │
│ · 同时读懂:文字语义 + AST树形结构依赖 │
│ · 记住变量作用域、循环嵌套、父子节点关系 │
│ · 把「文字」和「树结构」融合成一套特征 │
└─────────────────────┬───────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 第三步:模型推理生成(双通道协同输出) │
│ 1. 先由AST结构通道锁定整体骨架 │
│ 定好:函数→判断→循环→层级→依赖关系 │
│ 2. 再由言语通道填充代码文字与符号 │
│ 补全关键字、括号、变量、语法细节 │
└─────────────────────┬───────────────────────┘
↓
【最终输出:语法正确 + 结构严谨 的可运行代码】
二、关键点位一一锚定(闭环你所有知识点)
- AST 定位就是双编码里的非言语结构通道,是代码的逻辑骨架,决定代码不乱套、嵌套不混乱。
- Transformer 定位是双通道的融合大脑,用自注意力把「文字 token」和「AST 树节点关系」绑死在一起。
- RAG 补充联动(顺带打通)
- 原生 LLM:脑子里预存海量 AST + 文字规律,自己创作
- RAG 增强:先检索出真实业务代码 + 真实 AST 样例,再喂进双通道仿写,消灭幻觉
三、费曼极简一句话背记
AI 先靠 AST 搭好代码逻辑骨架,再用双编码看懂语法文字,最后靠 Transformer 融合上下文,一步步填出完整、规范的代码。
四、极简复盘口诀(方便记忆复盘)
文字走言语,结构靠 AST;双卡进 Transformer,注意力绑关系;先定骨架再填字,代码工整不瞎编。
306



被折叠的 条评论
为什么被折叠?



