#author("2023-02-05T09:25:48+00:00","default:admin","admin")
#author("2023-02-05T09:33:47+00:00","default:admin","admin")
[[Zig:https://ziglang.org/]]
-[[In-depth Overview:https://ziglang.org/learn/overview/]]

-[[5分でざっと理解するZig言語:https://zenn.dev/tetsu_koba/articles/2da58bd66586aa]]

-[[The Road to Zig 1.0 - Andrew Kelley:https://www.youtube.com/watch?v=Gv2I7qTux7g]]
-[[Zig言語はいつバージョン1.0になるのか:https://zenn.dev/tetsu_koba/articles/a2558fc78b135f]]

-[[Zig による効率的で移植性の高いプログラミング言語の構築:https://www.fastly.com/jp/blog/building-an-efficient-and-portable-programming-language-with-zig]]

-[[zig note:https://zenn.dev/ousttrue/books/b2ec4e93bdc5c4]]

-[[ざっくりとしたZigの紹介:https://zenn.dev/hastur/articles/bacbe2af2c5807]]
-[[Zig言語のドキュメントを見て「なるほど!」と思ったところ:https://zenn.dev/tetsu_koba/articles/032d3a2f675f50]]
-[[オープンソースプログラミング言語zigまとめ:https://qiita.com/bellbind/items/f2338fa1d82a2a79f290]]
-[[Zig 言語を触ってみる:https://zenn.dev/helloyuki/scraps/a012ef8cc52fc0]]
-[[Zig言語 : Zig言語に遭遇した時のメモ 2021-12:http://mpu.seesaa.net/article/484785713.html]]
-[[Zigについてのメモ:https://zenn.dev/hnakamur/books/memo-about-zig/viewer/introduction]]
-[[Zig で簡単な JSON パーサを書いてみた。:https://zenn.dev/mattn/articles/3b01651b7a42b3]]


*概要 [#nf71a11f]
**基本的な方針 [#u760deed]
-プログラムの振る舞いをすべて記述
--隠れた制御フローがない(プログラムは見た目の通りに
動く)
--手動のメモリ管理(メモリの扱いを明示的に記述)
-性能を重視しつつ,安全性も重視する
--性能と安全性は同時には両立できないため,ビルドオプションにより,性能を取るか安全性を取るかを選択(ReleaseSafeとReleaseFast/ReleaseSmall)
--ただし,メモリ安全な言語ではない
-シンプルな文法(小さい言語仕様)
--ただし,ビルトイン関数と標準ライブラリは別(ビルトイン関数は100個くらいある.標準ライブラリはそれなりの規模.これは仕方がない)
-C言語との共存を容易に

**Zig言語の重要な特徴(設計方針) [#u7f9eebc]
-コンパイル時のコード実行(comptime)
--最適化と合わせて,プリプロセッサが不要に
-安全性の向上
--ポインタの種類分け
--オプショナル型(NULLポインタの代替)
--安全なunion
-記述性の向上
--新しいエラー処理のアプローチ
--defer文,ラベル付きのbreak文とcontinue文(goto-less)
--ジェネリックなデータ構造と関数
--コンパイル時のリフレクション(メタプログラミング)
--非同期関数,並行性のサポート(☆未調査)
-単体テスト記述の統合
--ビルドシステム(Makefileの代替)をZig自身で記述できる

**安全性 [#tebdb7c9]
-[[How safe is zig?:https://www.scattered-thoughts.net/writing/how-safe-is-zig/]]
--zigの空間メモリ安全性はRustとほぼ同等であり、時間メモリ安全性とデータレース安全性はcとほぼ同等であると言える

*習得 [#qc4b0aea]
-公式サイトの「Getting Started」の流れに沿って学んでから、Zig の使用に必要なことの大部分をカバーしている[[Learn:https://ziglearn.org/]]セクションに移ることです。
-Zig に関するトークに興味があれば、[[Zig SHOWTIME:https://zig.show/]] をチェック

*他言語との比較 [#g959ed5f]
**Rustとの比較 [#ja12c976]
-[[Rust VS Zig benchmarks:https://programming-language-benchmarks.vercel.app/rust-vs-zig]]
-[[Rustがあるのに何でZig使うんですか?に対する解答:https://zenn.dev/hastur/scraps/06c2ff5bde0c10]]

*環境構築 [#kd84f994]
-[[Releases:https://ziglang.org/download/]]

-[[zig 紹介 インストール vscode:https://zenn.dev/ousttrue/books/b2ec4e93bdc5c4/viewer/e13c06]]

**macOS [#keda41f7]
-[[プログラミング言語 Zig で Hello World:https://kawaken.dev/posts/20220322_hello-world-in-programming-language-zig/]]

*[[Bun:https://bun.sh/]] [#b32170f0]
-JavaScript runtime

*組み込み [#ffee3514]
-[[Zig⾔語およびZen⾔語によるリアルタイムOSの実現:https://swest.toppers.jp/SWEST22/program/pdfs/s3a_public.pdf]]

-[[Zig on RISC-V BL602: Quick Peek with Apache NuttX RTOS:https://lupyuen.github.io/articles/zig]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS