# 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 Badge # ✦ NOVA ### 为新时代而生的编程语言 **简洁 · 优雅 · 强大** [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat-square&logo=go)](https://go.dev/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) [![Build Status](https://img.shields.io/badge/build-passing-brightgreen?style=flat-square)]() [![Tests](https://img.shields.io/badge/tests-30%20passed-brightgreen?style=flat-square)]() [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)]()
---

Typing SVG

--- ## 🚀 快速开始 ### 从源码构建 ```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 ✦ [![Gitee](https://img.shields.io/badge/Gitee-5B9BD5?style=for-the-badge&logo=gitee&logoColor=white)](https://gitee.com/Starlight-apk/Nova)