# Nova
**Repository Path**: starlight-apk/nova
## Basic Information
- **Project Name**: Nova
- **Description**: 一个基于Go的高性能与全面向引擎
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-03
- **Last Updated**: 2026-04-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ✦ NOVA
### 为新时代而生的编程语言
**简洁 · 优雅 · 强大**
[](https://go.dev/)
[](LICENSE)
[]()
[]()
[]()
---
---
## 🚀 快速开始
### 从源码构建
```bash
# 克隆仓库
git clone https://gitee.com/Starlight-apk/Nova.git
cd Nova
# 编译
go build -o nova ./cmd/nova
# 运行
./nova
```
### REPL 交互
```
$ ./nova
__ ___ ____ __
/ |/ /__ / / /___ __/ /_
/ /|_/ / _ \/ / __/ / / / __/
/ / / / __/ / /_/ /_/ / /_
/_/ /_/\___/_/\__/\__,_/\__/
Welcome to Nova Programming Language!
Type expressions and see them evaluated.
Press Ctrl+C to exit.
>>> print("Hello, Nova!")
Hello, Nova!
>>> x = 10;
>>> y = 20;
>>> x + y
30
```
### 运行脚本
创建 `hello.nova`:
```nova
# 你好,世界
print("Hello, World!");
# 变量
name = "Nova";
print("Welcome to " + name);
# 函数
fib = fn(n) {
if (n <= 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
};
print("fib(10) = " + type(fib(10))); # 55
```
```bash
$ ./nova run hello.nova
Hello, World!
Welcome to Nova
fib(10) = INTEGER
```
---
## ✨ 语言特性
| 特性 | 描述 | 状态 |
|:--:|:--|:--:|
| 🔤 **类型系统** | 整数、浮点数、字符串、布尔值 | ✅ |
| 📦 **变量绑定** | 动态类型,赋值即声明 | ✅ |
| 🔢 **算术运算** | `+` `-` `*` `/` `%` | ✅ |
| ⚖️ **比较运算** | `<` `>` `<=` `>=` `==` `!=` | ✅ |
| 🔀 **逻辑运算** | `!` 非运算 | ✅ |
| 🌿 **条件分支** | `if` / `else` 表达式 | ✅ |
| 🔧 **函数系统** | `fn` 定义,支持递归 | ✅ |
| 🏗️ **作用域链** | 闭包支持,环境变量链 | ✅ |
| 🛠️ **内置函数** | `print` `len` `type` | ✅ |
---
## 📖 语法概览
### 变量与类型
```nova
# 动态类型,无需声明
x = 42; # INTEGER
pi = 3.14; # FLOAT
name = "Nova"; # STRING
active = true; # BOOLEAN
```
### 运算符
```nova
# 算术
10 + 3; # 13
10 - 3; # 7
10 * 3; # 30
10 / 3; # 3
10 % 3; # 1
# 比较
1 < 2; # true
1 >= 1; # true
1 == 1; # true
1 != 2; # true
# 逻辑
!true; # false
!!true; # true
```
### 条件表达式
```nova
score = 85;
if (score >= 90) {
print("优秀");
} else if (score >= 60) {
print("及格");
} else {
print("不及格");
}
```
### 函数定义
```nova
# 基本函数
add = fn(a, b) {
return a + b;
};
add(3, 5); # 8
# 递归:斐波那契
fib = fn(n) {
if (n <= 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
};
fib(10); # 55
```
---
## 🏗️ 架构设计
```
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Source │────▶│ Lexer │────▶│ Parser │────▶│ Evaluator │────▶│ Output │
│ Code │ │ (词法分析) │ │ (语法分析) │ │ (解释执行) │ │ │
└─────────────┘ └──────────────┘ └─────────────┘ └──────────────┘ └─────────────┘
│ │ │
Token 流 AST 树 运行时对象
```
### 项目结构
```
Nova/
├── cmd/nova/ # CLI 入口
├── token/ # Token 定义
├── lexer/ # 词法分析器
├── ast/ # AST 节点
├── parser/ # Pratt Parser
├── evaluator/ # 解释器
├── object/ # 运行时对象
├── repl/ # REPL 环境
├── hello.nova # 示例脚本
├── go.mod
├── LICENSE
└── README.md
```
---
## 🎯 路线图
### 阶段一:核心基础 ✅
> Token · Lexer · Parser · Evaluator · REPL
### 阶段二:控制流 🚧
> `for` / `while` 循环 · 数组 · 字典
### 阶段三:模块系统 🔮
> `import` / `export` · 标准库 · 错误处理
### 阶段四:生态建设 🔮
> 包管理器 · 工具链 · 文档站点
---
## 🧪 运行测试
```bash
# 运行全部测试
go test ./...
# 详细输出
go test -v ./...
```
---
## 🤝 贡献
欢迎任何形式的贡献!
1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'feat: add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 提交 Pull Request
---
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
---
### ✦ Made with passion by Starlight ✦
[](https://gitee.com/Starlight-apk/Nova)