**Zen‑C**  
「高水準言語のように書き、C のように実行する。」

2026/01/12 21:57

**Zen‑C** 「高水準言語のように書き、C のように実行する。」

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Zen Cは、既存のCライブラリと完全なABI互換性を維持しつつ、人間が読めるGNU C/C11へ直接コンパイルされるモダンなシステムプログラミング言語です。型推論、パターンマッチング、ジェネリクス、トレイト、async/await、RAII(

defer
autofree
を併用)による手動メモリ管理、およびゼロランタイムオーバーヘッドを提供します。コンパイラは純粋なCコードを出力し、GCC、Clang、またはZigでビルドできます;言語の型はネイティブC型(
int
,
I8..I128
<int>_t
,
string
char*
など)に直接マッピングされ、配列・タプル・構造体(オプションでビットフィールド付き)、合計型としての列挙子、ユニオンをサポートします。関数は
fn
で宣言し、クロージャは矢印記法またはブロック構文で書けます。制御フローには
if/else
、三項演算子、範囲ベースおよびイテレータ付きの
for
ループ、
while
、ラベル付き無限ループ、
repeat
、ガード/unless 構文が含まれます。オブジェクト指向機能としては
impl
ブロック内でメソッドを定義し、静的コンストラクタ、インスタンスメソッド、トレイト、および
use
による合成を利用できます。並行処理は pthreads をベースにした
async fn
/
await
で実装されています。メタプログラミング機能にはコンパイル時実行(
comptime { … }
)、ファイル埋め込み(
embed "file"
)、コンパイラプラグイン、ジェネリックCマクロ、およびインラインアセンブリブロック(
asm { … }
)が含まれます。
@must_use
,
@deprecated
,
@inline
などの属性はコンパイラ動作を制御します。インストールは簡単で、リポジトリをクローンし、
make
を実行した後に
sudo make install
zc run <file>.zc
zc build <file>.zc -o <exe>
、または
zc repl
で使用できます。テストスイート(
make test
)が新しい言語拡張を検証します。今後のリリースではメタプログラミング機能を拡充し、並行処理サポートを深化させつつABIを維持し続けます。これによりシステム開発者はレガシーCと相互運用可能でありながら、モダンで型安全なコードへの低コストパスを得ることができます。

Text to translate

(combining all major points for clarity):**

Zen C is a modern systems‑programming language that compiles directly to human‑readable GNU C/C11, preserving full ABI compatibility with existing C libraries. It offers type inference, pattern matching, generics, traits, async/await, manual memory management via RAII (alongside

defer
and
autofree
), and zero runtime overhead. The compiler emits plain C that can be built with GCC, Clang, or Zig; the language maps its types straight to native C types (
int
,
I8..I128
<int>_t
,
string
char*
, etc.) and supports aggregates (arrays, tuples, structs with optional bitfields, enums as sum types, unions). Functions are declared with
fn
; closures can be written as arrows or block syntax. Control flow includes
if/else
, ternary operators, range‑based and iterator
for
loops,
while
, infinite loops with labels,
repeat
, and guard/unless constructs. Object‑oriented features let you define methods in
impl
blocks, use static constructors, instance methods, traits, and composition via
use
. Concurrency is built on pthreads with
async fn
/
await
. Metaprogramming facilities include compile‑time execution (
comptime { … }
), file embedding (
embed "file"
), compiler plugins, generic C macros, and inline assembly blocks (
asm { … }
). Attributes such as
@must_use
,
@deprecated
,
@inline
, etc., control compiler behavior. Installation is simple: clone the repo, run
make
, then
sudo make install
; use
zc run <file>.zc
,
zc build <file>.zc -o <exe>
, or
zc repl
. A test suite (
make test
) validates new language extensions. Upcoming releases will expand metaprogramming and deepen concurrency support while keeping the ABI intact, giving systems developers a low‑cost path to modern, type‑safe code that still interoperates with legacy C.

本文

Zen C
モダン・エルゴノミクス – ゼロオーバーヘッド – 純粋な C.

高レベル言語のように書き、C のように動かす。


概要

Zen C は、GNU C/C11 に人間が読める形でコンパイルされるモダンなシステムプログラミング言語です。以下の機能を備えています:

  • 型推論
  • パターンマッチング
  • ジェネリクス & トレイト(Traits)
  • async/await
  • 手動メモリ管理と RAII(100 % C ABI 互換)

クイックスタート

インストール

git clone https://github.com/z-libs/Zen-C.git
cd Zen-C
make
sudo make install

実行例

# コンパイルして実行
zc run hello.zc

# 実行ファイルをビルド
zc build hello.zc -o hello

# インタラクティブシェル
zc repl

言語リファレンス

  1. 変数と定数

    var x = 42;                 // int が推論される
    const PI = 3.14159;
    var explicit: float = 1.0;  // 明示的な型指定
    

    可変性 – デフォルトは可変。

    var mut
    又は
    //> immutable‑by‑default
    を使う。

  2. プリミティブ型
    | Zen | C 等価 | 説明 | |-----|--------|------| |

    int, uint
    |
    int
    ,
    unsigned int
    | プラットフォーム整数 | |
    I8 … I128
    |
    int8_t … __int128_t
    | 署名付き固定幅 | |
    U8 … U128
    |
    uint8_t … __uint128_t
    | 署名無し固定幅 | |
    isize, usize
    |
    ptrdiff_t
    ,
    size_t
    | ポインタサイズ | |
    byte
    |
    uint8_t
    |
    U8
    の別名 | |
    F32, F64
    |
    float
    ,
    double
    | 浮動小数点 | |
    bool
    |
    bool
    | 真偽値 | |
    char
    |
    char
    | 単一文字 | |
    string
    |
    char*
    | C 文字列(ヌル終端) | |
    U0, u0, void
    |
    void
    | 空型 |

  3. 集合型

    配列

    var ints: int[5] = {1, 2, 3, 4, 5};
    var zeros: [int; 5]; // ゼロ初期化
    

    タプル

    var pair = (1, "Hello");
    var x = pair.0;
    var s = pair.1;
    

    構造体

    struct Point {
        x: int;
        y: int;
    }
    var p = Point { x: 10, y: 20 };
    

    ビットフィールド

    struct Flags {
        valid: U8 : 1;
        mode:  U8 : 3;
    }
    

    列挙型(sum type)

    enum Shape {
        Circle(float),
        Rect(float, float),
        Point
    }
    

    共用体 – 標準 C の共用体(不安全アクセス)。

  4. 関数とラムダ

    関数

    fn add(a: int, b: int) -> int { return a + b; }
    add(a: 10, b: 20); // 名前付き引数
    

    ラムダ / クロージャ

    var factor = 2;
    var double = x -> x * factor;        // アロー構文
    var full   = fn(x: int) -> int { return x * factor; }; // ブロック構文
    
  5. 制御フロー

    条件分岐

    if x > 10 {
        print("Large");
    } else if x > 5 {
        print("Medium");
    } else {
        print("Small");
    }
    var y = if x > 10 ? 1 : 0; // 三項演算子
    

    パターンマッチ

    match val {
        1 => print("One"),
        2 | 3 => print("Two or Three"),
        4..10 => print("Range"),
        _ => print("Other")
    }
    

    列挙型の分解:

    match shape {
        Circle(r) => print(f"Radius: {r}"),
        Rect(w, h) => print(f"Area: {w*h}"),
        Point => print("Point")
    }
    

    ループ

    // 範囲
    for i in 0..10 { ... }
    for i in 0..10 step 2 { ... }
    
    // イテレータ/コレクション
    for item in vec { ... }
    
    while x < 10 { ... }
    
    outer: loop {
        if done { break outer; }
    }
    
    repeat 5 { ... }
    

    高度な構文

    guard ptr != NULL else { return; }
    unless is_valid { return; }
    
  6. 演算子 – C の関数(

    add
    ,
    sub
    …)にマッピング。注目点:null 合体 (
    ??
    ) や安全ナビゲーション (
    ?.
    ) は純粋な C ではノープです。

  7. メモリ管理

    Defer – スコープ終了時に実行。

    var f = fopen("file.txt", "r");
    defer fclose(f);
    

    Autofree – 自動で解放。

    autofree var types = malloc(1024);
    

    RAII / Drop トレイト

    impl Drop for MyStruct {
        fn drop(mut self) { free(self.data); }
    }
    
  8. オブジェクト指向

    メソッド

    impl
    で定義。

    impl Point {
        fn new(x: int, y: int) -> Point { return Point{x: x, y: y}; }
        fn dist(self) -> float { return sqrt(self.x * self.x + self.y * self.y); }
    }
    

    トレイト – 共有挙動。

    trait Drawable { fn draw(self); }
    impl Drawable for Circle { fn draw(self) { … } }
    

    コンポジション – フィールドのミックスイン。

    struct Entity { id: int; }
    struct Player {
        use Entity;
        name: string;
    }
    
  9. ジェネリクス – 型安全なテンプレート。

    struct Box<T> { item: T; }
    fn identity<T>(val: T) -> T { return val; }
    
  10. 並行(Async/Await) – pthreads に基づく。

    async fn fetch_data() -> string { return "Data"; }
    var future = fetch_data();
    var result = await future;
    
  11. メタプログラミング

    Comptime – コンパイル時に実行。

    comptime { print("Compiling..."); }
    

    Embed – ファイルをバイト配列として埋め込む。

    var png = embed "assets/logo.png";
    

    Plugins – コンパイラプラグインをインポート。

    import plugin "regex"
    var re = regex! { ^[a-z]+$ };
    
  12. 属性 – 関数/構造体に付与。
    | 属性 | スコープ | 説明 | |------|----------|------| |

    @must_use
    | Fn | 戻り値が無視された場合警告 | |
    @deprecated("msg")
    | Fn/Struct | メッセージ付き警告 | |
    @inline
    ,
    @noinline
    | Fn | コンパイラへのヒント | |
    @packed
    ,
    @align(N)
    | Struct | パディング/アラインメント | |
    @constructor
    ,
    @destructor
    | Fn |
    main
    前後に実行 | |
    @unused
    | Fn/Var | 未使用警告を抑制 | |
    @weak
    | Fn | 弱リンク | |
    @section("name")
    | Fn | 特定セクションへ配置 | |
    @noreturn
    | Fn | 戻らない関数 | |
    @derived(...)
    | Struct | トレイトを自動実装 |

  13. インラインアセンブリ – GCC スタイル拡張 asm、名前付き制約。

    fn add(a: int, b: int) -> int {
        var result: int;
        asm {
            "add {result}, {a}, {b}"
            : out(result)
            : in(a), in(b)
            : clobber("cc")
        }
        return result;
    }
    

コンパイラサポート & 互換性

コンパイラパス率対応機能知られた制限
GCC100 %全て
Clang100 %全て
Zig100 %全て
TCC~70 %基本構文、ジェネリクス、トレイト
__auto_type
未実装、Intel ASM 非対応、入れ子関数非対応

推奨: 本番環境では GCC, Clang, または Zig。
TCC は高速プロトタイピングに最適。


Zig でビルド

# Zen C プログラムを Zig で実行
zc run app.zc --cc zig

# Zen C コンパイラ自体を Zig でビルド
make zig

コントリビューション

  1. リポジトリをフォーク。
  2. フィーチャーブランチを作成 (
    git checkout -b feature/NewThing
    )。
  3. 既存の C スタイルに従い、
    make test
    を実行して全テストが通ることを確認。
  4. tests/
    に新しいテストを追加。
  5. 明確な説明付きでプルリクエストを送信。

テストの実行

# 全テスト(GCC)
make test

# 特定テスト
./zc run tests/test_match.zc

# 別コンパイラで実行
./tests/run_tests.sh --cc clang
./tests/run_tests.sh --cc zig
./tests/run_tests.sh --cc tcc

コンパイラ拡張の仕方

  • パーサ:
    src/parser/
    (再帰下降)
  • コード生成:
    src/codegen/
    – Zen C → GNU C/C11 へのトランスパイル
  • 標準ライブラリ:
    std/
    は Zen C で実装

同じ日のほかのニュース

一覧に戻る →

2026/01/13 4:27

了解しました!内容は明確で簡潔に保ちます。余分な改行や不必要な記号は入れず、リストがある場合は読みやすいようにきちんとインデントします。他にご要望がございましたら、お気軽にお知らせくださいね!

## Japanese Translation: **改訂された概要** CoworkはClaude Maxをベースにしたリサーチプレビュー・ツールで、現在はmacOSアプリを通じてMaxサブスクライバー向けに利用可能です。ユーザーが自分のコンピュータ上の特定フォルダへのClaudeのアクセス権を付与すると、そのフォルダ内のファイルを読み取り・編集・作成できるようになります。これにより、ダウンロードの整理、スクリーンショットからスプレッドシートを生成すること、散在したメモからレポートをドラフトするなどのタスクが便利に行えます。 標準的なチャットとは異なり、CoworkはAIにより大きな主体性を与えます。AIはタスクを計画し、実行し、進捗状況を提供します。このツールはClaude Codeと基盤を共有しており、非コーディングの文脈でもコード風の対話が可能です。ユーザーは既存のコネクター(例:ドキュメントやプレゼンテーション)をリンクしたり、Chromeとのペアリングでウェブ閲覧を行ったりして機能を拡張できます。AIは複数タスクをキューに入れ、並列実行することで前後のチャットを減らします。 制御権はユーザーに残ります:Claudeが見るフォルダとコネクターを選択し、大きな操作を行う前にプロンプトが表示されます。ただし、誤った指示でファイルが削除されたり、プロンプトインジェクションが発生するリスクもあるため、安全対策は継続的に開発中です。 このプレビューはフィードバックを集めることを目的としており、将来のリリースではデバイス間同期、Windowsサポート、強化された安全機能、および拡張されたコネクターオプションが追加される可能性があります。Coworkは個人向けにファイル整理を効率化し、手動監視を保ちながらファイルベースのワークフローを自動化する制御可能なAIアシスタントとして設計されています。

2026/01/13 1:04

**TimeCapsuleLLM:** 1800年〜1875年のデータのみで訓練された大規模言語モデル (Note: The length is preserved while using natural, polite Japanese.)

## Japanese Translation: ``` ## Summary TimeCapsule LLM プロジェクトは、歴史的な英語データのみを使用して言語モデルをゼロから構築し、現代のバイアス(「Selective Temporal Training」)を排除します。 - **Model evolution** - *v0* (16 M パラメータ、nanoGPT ベース) は約187 MB の1800年代テキストで訓練され、1800年代風の言語を生成しましたが、一貫性のない文になりました。 - *v0.5* (123 M パラメータ、引き続き nanoGPT) はコーパスを約435 MB に拡張し、文法・句読点を改善しましたが、高い幻覚と OCR ノイズに悩まされました。 - *v1* (700 M パラメータ、Phi 1.5 ベース) は約6.25 GB のデータで訓練され、歴史的事件や人物を正確に思い出せるようになりました。 - *v2mini‑eval1* (300 M パラメータ、90 GB London コーパス全体の15 GBサンプル) はわずか10 K ステップで訓練され、トークナイズ問題により「Who is Charles Dickens?」のような文字化けした出力が生成されました。 - *v2mini‑eval2* (v2mini‑eval1 と同じサイズ・データ) はチャールズ・ダーウィンについて極めて不連続なテキストを生成しました。 - **Dataset** 完全版 v2 データセットは1800–1875 年のロンドン テキストで 90 GB を含み、136,344 ドキュメントから構成されています。15 GB のサンプルは Hugging Face(https://huggingface.co/datasets/haykgrigorian/TimeCapsuleLLM-London-1800-1875-v2-15GB)で公開されています。 - **Training setup** *v0/v0.5* は GeForce RTX 4060 GPU、i5‑13400F CPU、および 16 GB RAM を使用しました。 *v1* と *v2mini‑eval1* はレンタル NVIDIA A100 SXM GPU 上で訓練されました。 - **Tokenization & evaluation** 時代固有のスペリングと語彙に対応するカスタムトークナイザー(vocab.json & merges.txt)を構築しました。出力は言語的正確さ、幻覚率、およびトークナイズ品質で評価され、バイアス統計は別途 v2 バイアスレポートに記載されています。 - **Future work** 今後の計画として、完全版 90 GB v2 データセットへの拡張、トークナイザーパイプラインの改良、およびより深いバイアス分析を実施します。 - **Impact** このプロジェクトは、歴史家・教育者・AI‑ethics 開発者が時代に即した言語モデルを必要とする際に有益であり、現代バイアスを減らすための時間的選択訓練(temporal selective training)の具体例として NLP コミュニティにも貢献します。 ```

2026/01/13 5:26

ファブリス・ベルラール氏のTS Zip(2024)

## 日本語訳: **概要** ts_zip は、GPU を活用したテキスト圧縮ツールであり、RWKV 169M v4 大規模言語モデル(パラメータを 8 ビットに量子化し、BF16 で評価)を使用してトークン確率を予測し、その予測に基づいて算術符号化を適用します。従来のツールよりも高い圧縮率を達成しています: - alice29.txt – **1.142 bpb**(21,713 B) - book1 – **1.431 bpb**(137,477 B) - enwik8 – **1.106 bpb**(13,825,741 B) - enwik9 – **1.084 bpb**(135,443,237 B) - linux‑1.2.13.tar – **1.021 bpb**(1,196,859 B)。 RTX 4090 上では、ツールは約 1 MB/s の速度で圧縮し、同程度の速度で解凍します。システムに少なくとも **4 GB の RAM** があることが前提です。ts_zip は実験的なものであり、バージョン間の後方互換性は保証されません。また、その性能評価は GPU/CPU またはスレッド数に依存せず、決定論的に行われます。この手法はプレーンテキストファイルで最も効果を発揮し、バイナリデータではエントロピーの削減がほとんど得られません。主に英語で訓練されていますが、他言語やソースコードにも比較的適切に対応します。 ダウンロードリンク: - Linux tarball: `ts_zip‑2024‑03‑02.tar.gz` - Windows ZIP: `ts_zip‑2024‑03‑02-win64.zip` 将来のリリースでは、圧縮率をさらに向上させ、言語サポートを拡大し、可能ならファイルタイプの取り扱いを追加しつつ、ハードウェア間で評価が再現できるようにすることを目指します。GPU リソースを持つユーザー(データアーカイブ担当者や大量テキストコーパスを管理する開発者など)にとって、速度を犠牲にせず高い圧縮率を実現できる最適なツールです

**Zen‑C** 「高水準言語のように書き、C のように実行する。」 | そっか~ニュース