Repolode
kulics

kulics/koral

一门实验性的编译型编程语言,语法规则面向 AI 生成、人工审阅的代码,无垃圾回收,编译到 C。

Star
418
Fork
27
未关闭 Issue
0
最近提交
23小时前

这是什么?

Koral 是一门编译型编程语言,设计思路是:越来越多的代码由 AI 智能体生成,但最终仍需人来阅读。语法上尽量减少出错的可能:每条语句以分号显式结束,可变性在类型声明处一次性确定,模块级名称只有一个归属,错误处理直接写在表达式内部,而不使用 throw、try 或 catch。

语言没有垃圾回收器,也没有手动 free。具名类型只有两种声明形式:不可变的 `type` 和可共享的 `type mutable`,内存管理由这一选择自然决定。编译器输出 C 代码,以便在多种平台上使用。语言支持代数数据类型、穷举模式匹配、带 trait 约束的泛型、trait 对象、C FFI 以及 `defer`。

项目目前处于实验阶段,尚不适用于生产环境。编译器采用自举方式,用 Koral 自身编写,并由一个冻结的 Swift 参考编译器引导构建。

核心功能

  • 01语句以显式分号结束,导入统一使用 `using` 语法。
  • 02基于 `type` 与 `type mutable` 实现内存管理,无需垃圾回收或手动 free。
  • 03`if`、`when`、`while`、`for` 等控制流都是表达式,`when` 要求穷举匹配。
  • 04通过 `or else`、`and then`、`or return` 在表达式内处理错误。
  • 05编译到 C,并提供包含原始指针和 `defer` 的 C FFI。

适用场景

  • 探索一门为便于审阅 AI 生成代码而设计的语言。
  • 学习编译器实现,包括自举编译器和 C 后端。
  • 尝试不依赖垃圾回收的内存管理方式。

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/kulics/koral.git
  2. 2

    构建冻结的 Swift 参考编译器(需要 Swift 工具链)

    swift build -c release --package-path compiler-reference
  3. 3

    用参考编译器构建自托管编译器

    compiler-reference/.build/release/koralc build --package-config compiler/koral.json --target-module koralc -o bin/compiler

使用前须知

  • 处于实验阶段,尚未达到生产可用标准。
  • 构建需要 Swift 工具链、clang 和 Git。
  • 代码通过 C 编译,因此生成可执行文件需要 C 工具链。

收录于专题

标签

常见问题

koral 是什么?
一门实验性的编译型编程语言,语法规则面向 AI 生成、人工审阅的代码,无垃圾回收,编译到 C。 Koral 是一门编译型编程语言,设计思路是:越来越多的代码由 AI 智能体生成,但最终仍需人来阅读。语法上尽量减少出错的可能:每条语句以分号显式结束,可变性在类型声明处一次性确定,模块级名称只有一个归属,错误处理直接写在表达式内部,而不使用 throw、try 或 catch。
koral 可以免费使用吗?用的什么许可证?
koral 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
koral 还在维护吗?
活跃维护中。koral 最近一次提交是在 2026年11月6日。
koral 适合用来做什么?
探索一门为便于审阅 AI 生成代码而设计的语言。 学习编译器实现,包括自举编译器和 C 后端。 尝试不依赖垃圾回收的内存管理方式。
koral 怎么安装和运行?
克隆仓库: git clone https://github.com/kulics/koral.git 构建冻结的 Swift 参考编译器(需要 Swift 工具链): swift build -c release --package-path compiler-reference 用参考编译器构建自托管编译器: compiler-reference/.build/release/koralc build --package-config compiler/koral.json --target-module koralc -o bin/compiler
在哪里获取 koral?
源代码和安装说明在 GitHub 上:https://github.com/kulics/koral

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目