文档与readme更新

This commit is contained in:
2026-02-01 13:59:20 +08:00
parent ca4ae143b4
commit 61bffdc743
11 changed files with 1214 additions and 69 deletions

View File

@@ -4,12 +4,14 @@
[English](README.md "英文版本")
**Fig** 是一种静态类型、面向表达式的编程语言专为清晰性、安全性和现代开发实践而设计。Fig 融合了 Go、Rust 和 JavaScript 的灵感,旨在提供高效的开发体验,同时保持强大的类型安全。
**Fig** 是一种动态强类型的编程语言专为清晰性、安全性和现代开发实践而设计。Fig 融合了 Go、Rust 和 JavaScript 的灵感,旨在提供高效的开发体验,同时保持强大的类型安全。
[语言入门教程(zh_CN)](docs/zh_CN/01-简介.md "第一章")
## 特性
### 🚀 核心语言特性
- **态类型与类型推断** - 强类型系统,最少类型注解
- **态类型与类型推断** - 强类型系统,最少类型注解
- **现代控制流** - 完整的 `for` 循环支持,正确的作用域管理
- **一等公民函数** - Lambda 表达式和闭包
- **丰富的数据结构** - 结构体、列表、映射和元组
@@ -42,47 +44,43 @@ xmake build Fig
4. 运行程序:
```bash
xmake run Fig [file]
```
`[file]`替换为输入文件的路径。
### 📁 项目结构
.
├── ExampleCodes # 示例代码与性能测试样例
│ └── SpeedTest # 性能相关测试示例
├── LICENSE # 项目开源协议
├── Logo # 项目标识资源
├── README.md # 英文 README
├── README_ZH-CN.md # 中文 README
├── compile_flags.txt # C/C++ 编译器参数提示
├── fig-vscode # VSCode 插件项目
│ ├── node_modules # VSCode 插件依赖
│ ├── out # 构建产物
│ ├── src # VSCode 插件源码
│ └── syntaxes # 语法高亮定义
├── src # Fig 语言核心源码
│ ├── Ast # 抽象语法树节点
│ ├── Context # 运行上下文
│ ├── Core # 核心基础设施(字符串/UTF8 等)
│ ├── Error # 错误系统
│ ├── Evaluator # 解释执行器
│ ├── Lexer # 词法分析器
│ ├── Module # 模块与内置库
│ ├── Parser # 语法解析器
│ ├── Token # Token 定义
│ ├── Utils # 实用工具与第三方 header
│ └── Value # 运行时类型系统与值表示
├── test.fig # 测试脚本
└── xmake.lua # Xmake 构建脚本
## 语言设计哲学
Fig 围绕几个核心原则设计:
1. **清晰优于巧妙** - 代码首先应该可读
2. **默认为安全** - 在编译时防止常见错误
3. **现代人机工程学** - 开发者体验很重要
4. **渐进式学习** - 入门简单,需要时功能强大
4. **渐进式学习** - 入门简单,需要时功能强大
## 性能概览
**版本:** 0.4.2-alpha (树遍历解释器)
**测试硬件:** i5-13490F, Windows 11
**计算 Fibonacci(30) 的执行时间:**
- 朴素递归: **11.72秒**
- 记忆化: **0.93毫秒** (快12,600倍)
- 迭代: **0.37毫秒** (快31,300倍)
- 尾递归: **0.40毫秒** (快29,200倍)
**可视化对比:**
```
朴素递归 : ████████████████████████████████████████ 11.72秒
记忆化递归 : ▉ 0.93毫秒
迭代算法 : ▍ 0.37毫秒
尾递归 : ▎ 0.40毫秒
```
**核心发现:** 在此树遍历实现中,算法选择主导性能表现。
**详细报告:** [English](./docs/benchmark_result/benchmark_result_en_0.4.2-alpha.md) | [中文](./docs/benchmark_result/benchmark_result_zh_0.4.2-alpha.md)
## 语言文档
在 docs/zh_CN/... 查看更多
我们正在寻找译者来帮助翻译项目文件以便于不同语言社区的使用