ML系譜の堅牢な型付き言語。高速で読みやすいJavaScriptにコンパイルでき、TypeScript型の生成と簡単なJS連携にも対応。
kulics/koral
AI生成コードを人がレビューすることを想定した、明示的な構文とGC不要のメモリ管理を備え、Cにコンパイルする実験的なプログラミング言語。
- スター
- 418
- フォーク
- 27
- 未解決の Issue
- 0
- 最終コミット
- 5 時間前
これは何?
Koralは、コードの多くがAIエージェントによって生成されるようになった一方で、人がそれを読まなければならないという考えを軸にしたコンパイル型プログラミング言語です。間違いにつながる余地を減らす構文を採用しており、すべての文は明示的なセミコロンで終わり、ミュータビリティは型で一度だけ宣言し、モジュールレベルの名前には単一の所有者がいます。また、エラー処理はthrow、try、catchではなく、式の中にインラインで記述します。
ガベージコレクターも手動のfreeも使わずにメモリを管理します。名前付き型は、イミュータブルな`type`または共有可能な`type mutable`のいずれかで宣言し、メモリの扱いはその選択に応じて決まります。コンパイラーはCを出力し、プロジェクトでは幅広いプラットフォームとの互換性を目指すものと説明しています。この言語には、代数的データ型、網羅的パターンマッチング、トレイト制約付きジェネリクス、トレイトオブジェクト、C FFI、`defer`が含まれます。
このプロジェクトは実験段階であり、まだ本番利用には対応していません。コンパイラーはセルフホスティングで、Koral自体で書かれており、凍結されたSwift製の参照コンパイラーからブートストラップされています。
主な機能
- 01文は明示的なセミコロンで終わり、importには単一の`using`形式を使います。
- 02ガベージコレクターや手動のfreeを使わず、`type`と`type mutable`に基づいてメモリを管理します。
- 03`if`、`when`、`while`、`for`などの制御フローは式ベースで、網羅的なパターンマッチングに対応します。
- 04エラーは`or else`、`and then`、`or return`を使ってインラインで処理します。
- 05Cにコンパイルでき、raw pointerと`defer`を使えるC FFIを備えています。
ユースケース
- AI生成コードをレビューしやすくすることを目指した言語を試す。
- セルフホスティングコンパイラーやCバックエンドを含む、コンパイラー設計を学ぶ。
- ガベージコレクターを使わないメモリ管理を試す。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/kulics/koral.git - 2
凍結版のSwift参照コンパイラをビルドする(Swift toolchainが必要)
swift build -c release --package-path compiler-reference - 3
参照コンパイラを使ってセルフホスティングコンパイラをビルドする
compiler-reference/.build/release/koralc build --package-config compiler/koral.json --target-module koralc -o bin/compiler
使う前に知っておきたいこと
- 実験段階であり、まだ本番環境での利用には適していません。
- ビルドにはSwift toolchain、clang、Gitが必要です。
- Cを介してコンパイルするため、バイナリの生成にはC toolchainが必要です。
収録されている特集
トピック
よくある質問
- koral とは?
- AI生成コードを人がレビューすることを想定した、明示的な構文とGC不要のメモリ管理を備え、Cにコンパイルする実験的なプログラミング言語。 Koralは、コードの多くがAIエージェントによって生成されるようになった一方で、人がそれを読まなければならないという考えを軸にしたコンパイル型プログラミング言語です。間違いにつながる余地を減らす構文を採用しており、すべての文は明示的なセミコロンで終わり、ミュータビリティは型で一度だけ宣言し、モジュールレベルの名前には単一の所有者がいます。また、エラー処理はthrow、try、catchではなく、式の中にインラインで記述します。
- koral は無料で使えますか?ライセンスは?
- koral は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- koral は今もメンテナンスされていますか?
- 活発にメンテナンス中。koral の最終コミットは 2026年11月7日 です。
- koral は何に使えますか?
- AI生成コードをレビューしやすくすることを目指した言語を試す。 セルフホスティングコンパイラーやCバックエンドを含む、コンパイラー設計を学ぶ。 ガベージコレクターを使わないメモリ管理を試す。
- koral のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/kulics/koral.git 凍結版のSwift参照コンパイラをビルドする(Swift toolchainが必要): 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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Goは、シンプルで信頼性が高く、効率的なソフトウェアを開発するためのオープンソースプログラミング言語です。
Rustプログラミング言語のメインソースリポジトリ。コンパイラ、標準ライブラリ、ドキュメントを収録しています。
Swayは、Fuelブロックチェーン上のスマートコントラクト開発向けに作られた、Rustに着想を得たプログラミング言語です。
依存ライブラリ不要で高速にコンパイルでき、CからVへの自動変換にも対応する、保守しやすいソフトウェア向けのシンプルなコンパイル言語。
Odinは、Cの代替として位置づけられた汎用のデータ指向システムプログラミング言語で、標準ライブラリを組み込んでいます。