Rust
Rust はメモリ安全と並行性を所有権・借用・ライフタイムの静的検証で実現するシステムプログラミング言語。GC を持たず RAII でリソースを管理する(ただし Arena パターンに頼る場面や GC が欲しい場面も実際にはある)。
型システムと言語機能
- trait によるアドホック多相、
From/Into変換、trait object(Box<dyn Fn(...)>等の動的ディスパッチ)。型推論はリージョン推論(ブロック=リージョン→ライフタイム)を取り入れる。 - 変性 (variance) を扱い、
Box<T>でサイズを固定して再帰データを表す。 - 例外は持たず
Result/Option(effect 的な扱い)。debug_assert!はリリース時に無効。 - メモリコンテナ:
Box/Rc/RefCell等のスマートポインタ、Typed Arena。
コンパイラ周辺
- trait 解決の chalk、IDE 基盤の rust-analyzer、lint の clippy、手続きマクロ proc macro、形式検証 creusot。コード生成は
#[cold]や PGO(LLVM 機能)。
エコシステム
- パーサ: nom / combine / lalrpop / rowan、LSP は tower-lsp。
- データ/CLI: polars、tabled。GUI は Tauri(Electron 風)。組込みスクリプトは rhai。LLVM バインドは inkwell。
- 自作言語インタプリタを Rust で書く例も多い(Writing Interpreters in Rust)。
関連
- 型理論的背景はtype-theory-lambda-cube・subtyping-variance。
- 自作言語/コンパイラ実装はarcturus-interpreter・toy-llvm-compiler。
- _moc-prog-lang