概要
- Zen C は現代的なシステムプログラミング言語で、 C11互換のCコード に変換
- 型推論 ・ パターンマッチ ・ ジェネリクス ・ RAII など高機能を実装
- C ABI 100%互換 で、手動メモリ管理やasync/awaitもサポート
- GCC/Clang/Zig を利用した高い互換性とクロスコンパイル対応
- 簡単な導入・拡張性 ・豊富なテスト・貢献歓迎
Zen C モダンエルゴノミクス:ゼロオーバーヘッド・ピュアC
- Zen C は、 人間が読めるC11コード へコンパイルされるモダンなシステム言語
- 型推論、 パターンマッチ、 ジェネリクス、 トレイト、 async/await、 RAIIによる手動メモリ管理 などを搭載
- C ABI完全互換 を維持しつつ、高級言語のような記述性とC並みの実行速度を両立
クイックスタート
- インストール手順
git clone https://github.com/z-libs/Zen-C.gitcd Zen-Cmakesudo make install
- 基本コマンド
zc run hello.zc:コンパイル&実行zc build hello.zc -o hello:実行ファイル生成zc repl:インタラクティブシェル
- 環境変数
ZC_ROOTで標準ライブラリのパス指定可能- 任意ディレクトリから標準インポートが利用可能
Zen C 言語リファレンス
1. 変数・定数
- 型推論 が標準、明示型も指定可能
var x = 42;:int型と推論const PI = 3.14159;:コンパイル時定数var explicit: float = 1.0;:型明示- ミュータビリティ
- デフォルトは可変
//> immutable-by-defaultで不変が標準var mut y = 10;で明示的可変
2. プリミティブ型
- C相当型 を網羅
int, uint:プラットフォーム標準整数I8..I128, U8..U128:固定幅整数isize, usize:ポインタサイズ整数byte:U8エイリアスF32, F64:浮動小数点bool, char, string, void:真偽値・文字・C文字列・空型
3. 集合型
- 配列 :値セマンティクス、固定長
var ints: int[5] = {1, 2, 3, 4, 5};
- タプル :複数値のグループ化
(1, "Hello")のように定義
- 構造体 :ビットフィールド対応
struct Point { x: int; y: int; }
- 列挙型 :タグ付きユニオン(Sum型)
enum Shape { Circle(float), Rect(float, float), Point }
- ユニオン :C標準のunsafeアクセス
4. 関数・ラムダ
- 関数定義
fn add(a: int, b: int) -> int { return a + b; }- 名前付き引数対応
- ラムダ式(クロージャ)
var double = x -> x * factor;- ブロック構文も利用可能
5. 制御構文
- 条件分岐
if x > 10 { ... } else if ... else { ... }- 三項演算子
var y = if x > 10 ? 1 : 0;
- パターンマッチ
match val { 1 => ... 2 | 3 => ... _ => ... }- 列挙型の分解も可能
- ループ
- 範囲for:
for i in 0..10 { ... } - コレクションfor、while、無限ループ、repeat
- 範囲for:
- 高度な制御
- guard/unlessによる早期return
6. 演算子
- 算術・比較・インデックス などC相当
- Null合体(??)・Null代入(??=)・安全ナビゲーション(?.)・try演算子(?) をサポート
7. メモリ管理
- defer :スコープ終了時に処理実行
- autofree :変数スコープ終了時に自動解放
- RAII/Dropトレイト :自動クリーンアップロジック実装
8. オブジェクト指向
- メソッド定義 :implブロックで静的/インスタンスメソッド
- トレイト :共通動作定義と実装
- コンポジション :
useで他構造体のフィールドをmixin
9. ジェネリクス
- 型安全なテンプレート
- 構造体・関数の型パラメータ化
10. 並行処理(Async/Await)
- pthreadベースの非同期関数
async fn fetch_data() -> string { ... }awaitで結果取得
11. メタプログラミング
- comptime :コンパイル時処理
- embed :ファイル埋め込み
- プラグイン :構文拡張
- Cマクロ :プリプロセッサマクロ透過
12. アトリビュート
- 関数・構造体の装飾
@must_useや@deprecatedなどC11拡張相当の多彩なアノテーション
13. インラインアセンブリ
- GCCスタイルasm を直接記述可能
- volatile ・ 名前付き制約 で安全なアセンブリ挿入
- Intel構文 も一部対応(TCC非対応)
14. ビルドディレクティブ
- ソース冒頭コメントでビルド設定
- ライブラリリンク・インクルードパス・CFLAGS・pkg-config・シェルコマンド・immutableモード等
- 例
//> include: ./include//> link: -lraylib -lm//> cflags: -Ofast//> pkg-config: gtk+-3.0
コンパイラ互換性・推奨環境
- GCC/Clang/Zig :全機能対応・100%合格
- TCC :高速だが一部機能未対応(__auto_type、Intel ASM、ネスト関数不可)
- Zig cc :クロスコンパイルに最適
- --cc フラグでバックエンド指定
テスト・貢献ガイド
- テストスイート
make testで全テスト実行./zc run tests/test_match.zcで個別テスト./tests/run_tests.sh --cc clang等で各コンパイラ確認
- コントリビュート方法
- GitHubでFork&ブランチ作成
- Cスタイル遵守、テスト必須
- Pull Requestで変更点明記
- コンパイラ拡張
- パーサ:
src/parser/ - コード生成:
src/codegen/ - 標準ライブラリ:
std/
- パーサ:
Zen C は、 Cの資産を最大限活かしつつ、現代的な開発体験 を提供する新世代言語。 高機能・高互換・高拡張性 を備え、Cエコシステムの未来を切り拓く選択肢。