cripto-bot/graphlang
GitHub: cripto-bot/graphlang
GraphLang 将 13 种编程语言的源代码转换为统一的语义中间表示(IR),使不同语言中具有相同计算意图的代码拥有相同的图结构,从而实现跨语言的代码等价性发现与高压缩率归一化。
Stars: 0 | Forks: 0
# GraphLang — 具有 29.8 倍跨语言压缩率的语义 IR
[](https://mariadb.com/bsl11/)
[](https://python.org)
[]()
[]()
[](https://archive.softwareheritage.org/)
**一种通用的代码语义中间表示。**
GraphLang 将 13 种编程语言转换为归一化的图,
其中**相同的意图 = 相同的结构**。这不是一种新语言 —— 而是一种语义 IR,
能够发现传统 AST 分析无法察觉的等价性。
## 📊 关键指标
| 指标 | 数值 | 含义 |
|--------|-------|---------------|
| **压缩率(多语言)** | **29.8x** (97%) | 跨 13 种语言:320M 个节点 → 10.8M 个唯一节点 |
| **压缩率(单语言)** | **22.5x** (96%) | 跨 3 种语言:434M 个节点 → 19.3M 个唯一节点 |
| **跨语言等价率** | **97%** 平均值 | 相同意图 = 相同的 IR 结构 |
| **覆盖语言数** | **13** (11 种达到 100%) | Python, Java, JS, TS, C#, Rust, Go, Kotlin, Ruby, PHP, Zig, C, C++ |
| **CST → IR 缩减率** | **~2,215 → 12** | 所有语言平均覆盖率达 97% |
## 🎯 GraphLang 证明了什么
```
Python: add(a,b): return a+b ─┐
Java: int add(int a,int b){return ─┤ → SAME GraphLang IR
a+b;} ─┘ (identical structure)
Zig: fn add(a:i32,b:i32)i32{
return a+b;} ─┘
```
传统的 AST 分析会将它们视为完全不同。
而 GraphLang 能在 13 种语言中看到相同的底层计算意图。
## 🏗️ 架构
GraphLang 定义了 **12 种通用 IR 类型**,它们是
通过对 13 种编程语言中约 2,215 种具体语法树(CST)节点类型进行系统分析而得出的。
### 12 种 IR 类型(已冻结)
| # | 类型 | 语义含义 |
|---|------|-----------------|
| 1 | `function` | 带参数的可执行单元 |
| 2 | `if` | 条件分支 |
| 3 | `for` | 有界迭代 |
| 4 | `while` | 无界迭代 |
| 5 | `return` | 值返回 |
| 6 | `assign` | 变量绑定 |
| 7 | `call` | 调用 |
| 8 | `binop` | 二元或比较运算 |
| 9 | `unary` | 一元运算 |
| 10 | `var` | 变量引用 |
| 11 | `const` | 字面常量 |
| 12 | `block` | 语句序列 |
### 语言覆盖率
| 语言 | CST 类型 | 核心 IR | 状态 |
|----------|-----------|---------|--------|
| Python | 238 | 100% | 生产级 |
| Java | 296 | 100% | 生产级 |
| JavaScript | 242 | 100% | 生产级 |
| TypeScript | ~250 | 100% | 生产级 |
| C# | ~220 | 100% | 生产级 |
| Rust | 290 | 100% | 生产级 |
| Go | 199 | 100% | 生产级 |
| Kotlin | ~200 | 100% | 生产级 |
| Ruby | ~180 | 100% | 生产级 |
| PHP | ~190 | 100% | 生产级 |
| Zig | ~150 | 100% | 生产级 |
| C | ~180 | 93% | 稳定版 |
| C++ | ~300 | 93% | 稳定版 |
## 📈 基准测试
### 单语言(Python / Java / JavaScript)
| 函数数 | 节点总数 | 唯一节点数 | 比率 | 耗时 |
|-----------|-------------|--------|-------|------|
| 1,500 | 33,387 | 1,197 | 27.9x | 1s |
| 10,000 | 216,883 | 9,770 | 22.2x | 3s |
| 100,000 | 2,172,203 | 96,504 | 22.5x | 40s |
| 1,000,000 | 21,701,749 | 965,037 | 22.5x | 20s |
| 10,000,000 | 217,210,967 | 9,649,257 | 22.5x | 203s |
| 20,000,000 | 434,035,010 | 19,298,367 | 22.5x | 410s |
### 多语言(13 种语言)
| 函数数 | 节点总数 | 唯一节点数 | 比率 | 耗时 |
|-----------|-------------|--------|-------|------|
| 1,040 | 19,360 | 705 | 27.5x | 0.3s |
| 1,014,000 | 16,025,625 | 538,561 | 29.8x | 26s |
| 20,046,000 | 320,512,500 | 10,769,320 | 29.8x | 290s |
**压缩率收敛于一个常数**:从 10 万个函数开始,单语言为 22.5 倍,多语言为 29.8 倍。
这不是数据集产生的假象 —— 这是对人类编写的代码所具有的一项底层属性的测量结果。
## 📂 公共仓库结构
```
graphlang/
├── core.py # IR engine: Node, Graph, merge O(N)
├── normalizer.py # Legacy normalizer
├── adapter.py # Legacy CST → IR adapter
├── parallel_ir.py # GPU/HPC extension (CUDA, OpenCL, Metal)
├── SPEC.md # Formal IR specification (FROZEN)
├── TECHNICAL.md # Technical whitepaper
├── IP.md # Prior art declaration
├── paper/ # Academic paper (ArXiv-ready)
├── legal/ # US legal framework + checklist
├── marketing/ # LinkedIn profile + launch posts
├── LICENSE # BSL 1.1 (converts to MIT July 28, 2046)
├── CONTACT.md # Commercial licensing tiers
├── ENTERPRISE.md # Enterprise pricing
└── README.md
```
## 📚 引用
```
@software{GraphLang2026,
author = {Josué Argaña Silguero},
title = {GraphLang: A Universal Semantic Kernel for Code —
29.8x Cross-Language Compression Across 13 Languages},
year = {2026},
url = {https://github.com/cripto-bot/graphlang}
}
```
## 📄 许可证
**Business Source License 1.1** — 可免费用于研究、个人和非商业用途。
将于 **2046 年 7 月 28 日** 转换为 MIT 许可证。
- **非商业及研究用途**:✅ 免费。可随意使用、修改并发表论文。
- **AI/ML 训练用途**:❌ 需要商业许可。
- **生产/商业用途**:❌ 需要商业许可。
**完整基准测试数据集**(2000 万个对齐的函数对)可通过 NDA 向
合格的企业提供。请联系 **josu31.jas@gmail.com** 获取访问权限。
如需商业许可、数据集访问或企业支持:
→ 请参阅 [CONTACT.md](CONTACT.md) 或 [ENTERPRISE.md](ENTERPRISE.md)
*"我们没有发明一种新语言。我们发现,所有语言其实一直在说着同一种话。"*
标签:Python, Vectored Exception Handling, Veh, 中间表示, 代码分析, 凭证管理, 无后门, 编译原理, 跨语言, 逆向工具