(原文标题:Graph-Code: A Graph-Based RAG System for Any Codebases)(GitHub)
2026/1/5大约 4 分钟
2026/1/5大约 5 分钟
一、Memgraph vs Neo4j:核心定位差异(一句话版)
Neo4j 是“成熟稳健的通用图数据库”,
Memgraph 是“面向实时计算、算法和流式场景的高性能图计算引擎”。
这句话几乎决定了 Graph-Code 更偏向哪一边。
二、关键能力对比(围绕 Graph-Code 真实需求)
下面这张对比表,不是功能清单对齐,而是“Graph-Code 是否真的用得上”。
2026/1/5大约 4 分钟
下面我会按**“从工程现实出发、同时不失编译原理严谨性”的方式,把经典语言编译从源代码到 0/1 的完整路径系统拆开,并明确每一阶段的输入 / 输出 / 关键技术 / 现实中的实现形态**。
我会刻意区分三条线索:
- 经典编译理论中的标准流水线
- 现代工业级编译器的真实形态
- 你当前关心的 AI / 代码理解 / RAG 体系中,这些阶段各自的价值
2026/1/5大约 4 分钟
一、什么是 CST(Concrete Syntax Tree)
Concrete Syntax Tree(具体语法树),也常被称为:
- Parse Tree(解析树)
- Derivation Tree(推导树)
它是源代码按照“语言的完整语法规则”解析后得到的树结构,完整保留了源代码的所有语法细节。
一句话定义:
2026/1/5大约 4 分钟
AST(Abstract Syntax Tree,抽象语法树)
一、AST 是什么(精准定义)
Abstract Syntax Tree(AST) 是:
在语法分析之后,对程序“语义结构”的抽象树形表示,刻意丢弃与语义无关的语法细节,只保留“程序在做什么”。
强调三点:
- Abstract(抽象)
去掉括号、分号、关键字冗余、语法糖 - Syntax(语法)
仍然是结构化的、可推理的代码结构 - Tree(树)
层级明确,天然适合递归、遍历、分析
2026/1/5大约 4 分钟
Tree-sitter 是一个语法解析器生成工具以及一个增量解析库。
它能够为源代码文件构建具体语法树(Concrete Syntax Tree, CST),并且在源文件被编辑时,高效地对语法树进行更新。Tree-sitter 的设计目标包括:
- 通用性:足够通用,可以解析任意编程语言
- 高性能:性能足够高,能够在文本编辑器中做到每一次按键输入都进行解析
- 健壮性:即使在存在语法错误的情况下,也能提供有价值的解析结果
- 无运行时依赖:其运行时库使用纯 C 语言编写,可被嵌入到任何应用程序中
2026/1/5大约 4 分钟
这是一个非常本质、而且非常常见的误解点。结论先给出一句话:
AI 能“理解”自然语言,并不等于它能“可靠、可控、可执行地理解代码结构”。
语法树不是倒退,而是 把“理解”从概率问题,变成工程可控问题。
下面从工程视角,分层说明为什么最终一定会回到 AST / CST / 图结构这条路。
一、LLM 的“理解”,本质是概率,不是结构
LLM 对自然语言(以及代码)的理解,本质是:
2026/1/5大约 3 分钟
