i3abghany/kyoto

GitHub: i3abghany/kyoto

Kyoto 是一个基于 LLVM 的静态类型编译型编程语言项目,包含编译器和模糊测试器,旨在探索语言设计与编译器实现。

Stars: 2 | Forks: 0

Kyoto logo Kyoto

这是 Kyoto 编程语言及其编译器 Cyoto 的代码库。Kyoto 是一种静态类型的编译型语言,目前仍处于早期设计阶段。该编译器使用 C++ 编写,并利用 LLVM 进行分析和代码生成。

Kyoto Quicksort Example

## 构建 Cyoto 需要以下依赖项: - LLVM >= 20 - CMake >= 3.20 - Java >= 8 - antlr == 4.13.2 - Boost >= 1.74.0 - GCC >= 13(用于支持 C++23 和 std::fmt) 要在 Ubuntu 上安装依赖项,请运行以下命令: ``` $ sudo apt-get install llvm-20-dev cmake default-jre libboost-all-dev gcc-13 g++-13 libfmt-dev libzstd-dev ``` 可以按照以下步骤从官方网站的镜像安装 Antlr 4.13.2: ``` $ export REPO_TOP_LEVEL=`git rev-parse --show-toplevel` $ mkdir -p $REPO_TOP_LEVEL/thirdparty $ wget https://www.antlr.org/download/antlr-4.13.2-complete.jar -O $REPO_TOP_LEVEL/thirdparty/antlr-4.13.2-complete.jar $ chmod +x $REPO_TOP_LEVEL/thirdparty/antlr-4.13.2-complete.jar $ export PATH="$REPO_TOP_LEVEL/thirdparty:$PATH" ``` 如果包管理器中没有 llvm-20,可以使用官方网站提供的脚本按以下步骤进行安装: ``` $ wget https://apt.llvm.org/llvm.sh $ chmod +x llvm.sh $ sudo ./llvm.sh 20 all ``` 要构建编译器,请运行以下命令: ``` $ mkdir build $ cd build $ cmake .. -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_C_COMPILER=gcc-13 $ make cyoto -j$(nproc) ``` ### 运行测试 要运行测试,你可以使用以下命令: ``` $ make ktest -j$(nproc) && ./ktest ``` ## 用法 要编译 Kyoto 源文件,请运行以下命令: ``` $ ./cyoto --help Usage: ./cyoto [OPTIONS] INPUT_FILE The Kyoto Programming Language Compiler: -h [ --help ] Print this help message -r [ --run ] Run the program in `lli` after compilation -o [ --output ] arg (=a.out) Output file for the executable binary ``` ## 对编译器进行模糊测试 本代码库包含一个针对 Cyoto 编译器的基于语法的模糊测试器,它基于定义在 `kyoto/grammar/` 中的 Kyoto ANTLR4 语法。 该模糊测试器使用 Rust 编写。有关如何使用它的更多信息,请参阅 `fuzzer` 目录中的 [README](fuzzer/README.md)。 # 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
标签:ANTLR, Bash脚本, Boost, C++, C++23, CMake, Cyoto编译器, Fuzzer, JS文件枚举, Kyoto语言, LLVM, SOC Prime, 代码生成, 可视化界面, 开发工具, 数据擦除, 渗透测试工具, 系统编程, 编程语言, 编译器, 词法分析, 语法分析, 软件开发, 静态类型语言