Skip to content

Latest commit

 

History

65 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kairote Programming Language

BY KairoteStudio

Kairote Programming Language

系统级编程语言 | 编译速度比你想的快亿点点

License: MPL Stars Forks Issues Last Commit Code Size C Python Made by Kairote

官网 | 文档 | 讨论区 | 提交问题


概述

KairoteLang 是一个由 Kairote Studio 开发的现代系统级编程语言,专为追求极致性能与优雅语法的开发者而生。

我们的愿景:打造一款兼具 C++ 性能(但目前仅在部分领域上赶超)、C# 优雅、Rust 安全(当前阶段尚未实现)的编程语言,让系统编程变得简单而强大。

为什么选择 KairoteLang?

特性 描述
极致性能 自研编译器 toolchain,零成本抽象,编译速度极快
优雅语法 基于 C# 语法扩展,学习曲线平缓,表达能力强大
自研工具链 独立实现的前端、SSA 形式的 IR 及多目标后端代码生成
现代架构 模块化设计,支持增量编译和并行构建
类型安全 静态类型系统,编译期捕获错误

预览

// KairoteLang 代码示例
Namespace HelloWorld;

using System;

public class Program
{
    public static void Main(string[] args)
    {        
        Console.WriteLine("Hello, KairoteLang!");
    }
}

快速开始

环境要求

  • 操作系统: Linux | Windows | macOS
  • Zig: 0.17.0+ (作为 C 编译器和构建系统)
  • C 标准库: 需要 libmlibpthread

安装

# 克隆仓库
git clone https://github.com/KairoteStudio/Kairote_Lang.git
cd Kairote_Lang

构建项目

# 构建 Re.KrtC 编译器(使用 zig)
cd Re.KrtC
zig build

编译器依赖 libarklink。如果 ../ArkLink/build/libarklink.a 不存在,需先构建 ArkLink:

cd ../ArkLink && cmake -S . -B build && cmake --build build

编写你的第一个 KairoteLang 程序 或 学习文档

创建 hello.krt 文件:

using System

Namespace Hello;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello, KairoteLang!");
    }
}

编译并运行:

KrtC build hello.krt
./hello

架构概览

┌─────────────────────────────────────────────────────────────┐
│                    KairoteLang Toolchain                    │
├─────────────┬─────────────┬─────────────────────────────────┤
│   Re.KrtC   │   ArkLink   │   Runtime                       │
│  编译器      │   链接器    │   运行时                         │
├─────────────┼─────────────┼─────────────────────────────────┤
│   词法分析   │  COFF/ELF   │  内存管理                        │
│   语法分析   │    PE后端   │  标准库                          │
│   语义分析   │   符号解析   │  异常处理                        │
│   SSA IR    │   重定位     │                                  │
│   代码生成   │   库文件     │                                  │
└─────────────┴─────────────┴─────────────────────────────────┘

项目结构

Kairote_Lang/
├── Re.KrtC/                # 编译器核心 (KrtC → Re.KrtC)
│   ├── src/
│   │   ├── Core/           # 基础库(内存、平台、工具)
│   │   ├── compiler/       # 编译器前端、中端、后端
│   │   ├── Bytecode/       # 字节码定义
│   │   └── Tools/          # 开发工具
│   ├── Shared/             # 共享代码生成器
│   ├── stub_include/       # 存根头文件
│   └── build.zig           # Zig 构建脚本
├── ArkLink/                # 链接器
│   ├── src/                # 核心链接逻辑与后端
│   └── include/            # 头文件
├── libs/                   # 标准库 (.krt)
└── docs/                   # 文档

技术特性

编译器 (KrtC)

  • 前端: 递归下降语法分析器,支持完整的 C# 语法子集
  • 中端: SSA 形式的中间表示,支持多种优化 passes
  • 后端: 多目标代码生成(x86, x64, ARM)

链接器 (ArkLink)

  • 支持 COFF、ELF、PE 格式
  • 增量链接支持
  • 符号版本控制
  • 死代码消除

路线图

  • 基础编译器框架
  • 链接器实现
  • SSA IR 中端
  • x86 / Kro 后端
  • 标准库完善
  • 包管理器
  • IDE 插件
  • JIT 编译支持
  • 跨平台优化

参与贡献

我们欢迎所有形式的贡献!无论是提交 Bug 报告、功能建议,还是代码贡献。

如何贡献

  1. Fork 本仓库
  2. 创建你的 Feature Branch (git checkout -b feature/Feature)
  3. Commit 你的更改 (git commit -m 'Add some Feature')
  4. Push 到分支 (git push origin feature/Feature)
  5. 打开一个 Pull Request

提交规范

  • 使用清晰的提交信息描述变更
  • 确保代码通过现有测试
  • 新增功能请附带测试用例
  • 遵循现有代码风格

查看贡献指南

提交 Bug 报告

提交功能建议


许可证

本项目采用 MPL 2.0 License 开源。


相关项目

  • None

联系我们

渠道 链接
邮箱 ?@?.?
QQ 群 791809691
GitHub https://github.com/KairoteStudio_Lang

致谢

技术参考

贡献者

感谢所有为这个项目做出贡献的开发者!


如果这个项目对你有帮助,请给我们一颗Star!

Made with ❤️ by Kairote Studio

About

A compiled programming language developed by a team of middle school students, trying to imitate and improve C#

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages