Zig
概要 †
基本的な方針 †
- プログラムの振る舞いをすべて記述
- 隠れた制御フローがない(プログラムは見た目の通りに
動く)
- 手動のメモリ管理(メモリの扱いを明示的に記述)
- 性能を重視しつつ,安全性も重視する
- 性能と安全性は同時には両立できないため,ビルドオプションにより,性能を取るか安全性を取るかを選択(ReleaseSafe?とReleaseFast?/ReleaseSmall?)
- ただし,メモリ安全な言語ではない
- シンプルな文法(小さい言語仕様)
- ただし,ビルトイン関数と標準ライブラリは別(ビルトイン関数は100個くらいある.標準ライブラリはそれなりの規模.これは仕方がない)
- C言語との共存を容易に
Zig言語の重要な特徴(設計方針) †
- コンパイル時のコード実行(comptime)
- 安全性の向上
- ポインタの種類分け
- オプショナル型(NULLポインタの代替)
- 安全なunion
- 記述性の向上
- 新しいエラー処理のアプローチ
- defer文,ラベル付きのbreak文とcontinue文(goto-less)
- ジェネリックなデータ構造と関数
- コンパイル時のリフレクション(メタプログラミング)
- 非同期関数,並行性のサポート(☆未調査)
- 単体テスト記述の統合
- ビルドシステム(Makefileの代替)をZig自身で記述できる
安全性 †
習得 †
- 公式サイトの「Getting Started」の流れに沿って学んでから、Zig の使用に必要なことの大部分をカバーしているLearnセクションに移ることです。
- Zig に関するトークに興味があれば、Zig SHOWTIME をチェック
他言語との比較 †
Rustとの比較 †
環境構築 †
macOS †
組み込み †