Vix 是一种轻量级、静态类型的编译型语言,目标是在保持语法简洁的同时,提供接近原生语言的执行效率。
English | 快速开始 | 文档 | VS Code 扩展 | 参与贡献
- 静态类型 + 编译期检查
- 多平台(Windows / Linux / macOS)
- LLVM 后端(仓库内历史上也包含过 QBE/C++ 相关实现)
构建依赖主要包括:clang/llvm、flex、bison、make、git。
仓库提供了一个简单的依赖安装脚本(Linux):
./src/install.shcd src
make编译完成后,编译器二进制位于 src/vixc。
./src/vixc -v创建 hello.vix:
fn main() -> i32 {
print("Hello, Vix!")
return 0
}
编译并运行:
./src/vixc hello.vix -o hello
./hello仓库的 examples 和 examples/test 目录中包含大量可运行示例。
这里给出两段最常见的语法片段:
fn fib(n: i32) -> i32 {
if (n <= 1) {
return n
}
return fib(n - 1) + fib(n - 2)
}
fn main() -> i32 {
print(fib(10))
return 0
}
fn main() -> i32 {
mut sum = 0
for (i in 1 .. 100) {
sum = sum + i
}
print("sum=", sum)
return 0
}
- CONTRIBUTING.md —— 贡献指南,如何参与项目开发
- compiler.md —— 编译器实现细节与工作流程
- control-flow.md —— 控制流语句(if、循环等)的语法与用法
- functions.md —— 函数定义、调用、泛型等特性
- getting-started.md —— 快速入门指南,安装与第一个程序
- modules.md —— 模块系统,导入与导出规则
- pointers.md —— 指针的声明、解引用、运算及使用示例
- stdlib.md —— 标准库提供的函数与常用模块
- structs.md —— 结构体定义、实例化、字段访问
- syntax.md —— 完整语法参考,包含 EBNF 形式
- types.md —— 类型系统:基本类型、泛型、联合类型等
- what-is-vix.md —— Vix 语言简介与设计目标
提示:如果你只想从零开始跑通一次编译 + 运行,建议先看 getting-started.md。
我们欢迎各种形式的贡献!包括但不限于:提出语法建议、撰写文档、报告 bug、提交代码、完善标准库等。
请阅读贡献指南开始。
Vix 正在逐步构建自己的生态:
| 项目 | 描述 | 状态 |
|---|---|---|
| Vix 编译器 | 核心编译器(LLVM/QBE/C++ 后端) | 开发中,即将自举 |
| VPM | Vix 包管理器 | 社区贡献中 |
| 标准库 | 常用数据结构和函数 | 社区贡献中 |
| VS Code 扩展 | 编辑器支持 | 已发布 |
本项目基于 Apache License 2.0 开源 - 查看 LICENSE 文件了解详情。
-
GitHub Issues:直接在本仓库提交
-
QQ 群:130577506(一起聊 Vix)
如果你对 Vix 感兴趣,欢迎 star、fork、提 issue,或者直接上手试试!
