Files
TransPyC/README.md
2026-06-16 16:09:42 +08:00

38 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Viper 语言规范
Viper 是一种基于 Python 语法的系统级编程语言,通过 TransPyC 编译器编译为 LLVM IR最终生成原生机器码。Viper 不是 Python 的子集,也不是 C 的语法糖——它拥有独立的类型系统、两阶段编译模型和 SHA1 命名空间机制,适用于操作系统内核、嵌入式系统、驱动程序等底层开发场景。
## 核心设计理念
- **Python 语法LLVM 语义**:源文件是合法的 Python 语法,但通过 `t` 模块类型注解赋予 LLVM 级别的语义
- **类型注解即编译指令**:类型注解决定 LLVM IR 的生成,不是可选的提示
- **两阶段编译**:先提取声明接口(`.pyi` + `.stub.ll`),再翻译源文件为含代码的 `.ll`
- **SHA1 命名空间**:每个源文件按内容 SHA1 哈希命名,自动消除跨模块符号冲突
- **零运行时开销**:编译为原生代码,无 GC、无解释器、无虚拟机
## 模块总览
Viper 语言通过两个核心模块提供类型和操作支持:
| 模块 | 用途 | 导入方式 |
|------|------|----------|
| `t` | 类型定义系统 | `import t` |
| `c` | C 语言操作指令 | `import c` |
## 文档索引
| 文件 | 内容 |
|------|------|
| [01-overview.md](01-overview.md) | 语言概述、两阶段编译流程、SHA1 命名空间、`t.CDefine`/`t.CExport`/`t.CInline` 深度解析 |
| [02-type-system.md](02-type-system.md) | 类型系统基本类型、指针、数组、结构体、联合体、枚举、typedef、`__attribute__` |
| [03-variables.md](03-variables.md) | 变量声明与赋值(含 `t.CDefine` 常量) |
| [04-functions.md](04-functions.md) | 函数定义与调用(含 `t.CExport``t.CInline``t.CDefine` 函数、`@c.CReturn` |
| [05-classes.md](05-classes.md) | 类与数据布局结构体、联合体、枚举、typedef、位域 |
| [06-oop.md](06-oop.md) | 面向对象与运算符重载(`@t.Object``@t.CVTable`、继承、dunder 方法) |
| [07-control-flow.md](07-control-flow.md) | 控制流条件、循环、match |
| [08-c-operations.md](08-c-operations.md) | C 语言操作指针、内联汇编、预处理指令、LLVM IR 内联) |
| [09-exceptions.md](09-exceptions.md) | 异常处理 |
| [10-imports.md](10-imports.md) | 模块与导入系统存根生成、SHA1 命名空间与导入) |
| [11-builtins.md](11-builtins.md) | 内置函数与运算符 |
| [12-project.md](12-project.md) | 项目配置与构建增量编译、SHA1 映射) |