487 Views
July 04, 25
スライド概要
Zig 言語はどのような言語なのか?
実際に使用した感触をお伝えします。
ベガシステム技術勉強会の発表資料です。
ベガシステムは、創業1990年、30年以上続くIT企業です。 お客様との対話を大切にし、新たな価値を創造し続けます。
https://www.vega-net.co.jp/ 技術勉強会 Zig言語を触ってみよう 2025年6月4日 株式会社ベガシステム
■目次 ・目的 ・Zigの概要 ・Zigの特徴 ・Docker+DevContainerで環境構築 ・実際に書いてみよう ・感想 ・参考 © 2025 VEGA Systems Inc. 1
■目的 ・未だバージョン0.14で正式リリースされていないにも関わらず、JavaScript実行環境の 「Bun」やターミナルエミュレータの「Ghostty」といったアプリケーションの開発で使用されて いるZig どのような言語なのか、実際に触って体験してみたいと思い、勉強会のテーマにしました © 2025 VEGA Systems Inc. 2
■ Zigの概要 ・2015年に開発が始まった新しい言語 ・C言語の後継を目指した汎用プログラミング言語およびツールチェイン ・シンプルな言語仕様 © 2025 VEGA Systems Inc. 3
■ Zigの特徴 ・C言語の後継を目指した汎用プログラミング言語およびツールチェイン →Zigの中にコンパイラなどのツールが最初から入っている →CやC++のコードをコンパイルする事も出来る © 2025 VEGA Systems Inc. 4
■ Zigの特徴 ・シンプルな言語仕様 →隠された制御フロー、隠されたメモリ割り当て、プリプロセッサ、マクロが無い ・comptimeでコンパイル時にコードを実行 右例) 2+3という計算をコンパイル時に実行 実行ファイルには 2+3の代わりに計算結果の 5が埋め込まれる © 2025 VEGA Systems Inc. 5
■ Docker+DevContainerで簡単に開発環境構築 ・Zigは各種パッケージマネージャーでインストールできます Install Zig from a Package Manager · ziglang/zig Wiki ・とりあえず動かす場合 $ docker run --rm --it alpine sh // 上記コマンドでalpine linuxコンテナを立ち上げ、接続する # apk update # apk add zig ・これで最低限の環境構築完了します © 2025 VEGA Systems Inc. 6
■ Docker+DevContainerで簡単に開発環境構築 ・VSCodeの拡張機能 DevContainerをインストール ・開発コンテナーを選択して ・アタッチします © 2025 VEGA Systems Inc. 7
■ Docker+DevContainerで簡単に開発環境構築 ・VSCodeのターミナルで 適当なフォルダを作成して開く ・言語サポートの拡張機能も インストールし、準備完了 © 2025 VEGA Systems Inc. 8
■実際に書いてみよう ・Hello World © 2025 VEGA Systems Inc. 9
■実際に書いてみよう ・プロジェクトの作成とビルド © 2025 VEGA Systems Inc. 10
■実際に書いてみよう ・ifは式としても使える © 2025 VEGA Systems Inc. 11
■実際に書いてみよう ・for © 2025 VEGA Systems Inc. 12
■実際に書いてみよう ・while while (継続条件) : (繰り返し時の処理) という書き方が出来る © 2025 VEGA Systems Inc. 13
■実際に書いてみよう ・switch 漏れているケースがあると 指摘してくれます © 2025 VEGA Systems Inc. 14
■実際に書いてみよう ・メモリ確保 deferは後で実行される © 2025 VEGA Systems Inc. 15
■実際に書いてみよう ・匿名構造体、タプル .{}でタプルを作れる。std.debug.print()の第2引数はタプル(又は構造体)を受け取る © 2025 VEGA Systems Inc. 16
■実際に書いてみよう ・構造体 ・これでも良い © 2025 VEGA Systems Inc. 17
■実際に書いてみよう ・構造体 関数も含めることが出来る © 2025 VEGA Systems Inc. 18
■実際に書いてみよう ・Cライブラリのインポート © 2025 VEGA Systems Inc. 19
■感想 ・Zigをとりあえず触ってみるのは簡単にできる ・他の言語との書き方の違いを確認するのは楽しい ・C言語の代替を目指す言語はZig以外にもいろいろある C3 | An evolution, not a revolution Odin Programming Language carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README) ・本当に重要なのは表面的な書き方よりも、それによって何をめざしているのか ↑大事な部分は自分の前提知識があまりに足りなくて良くわからなかった。 (LLVMやlibc、ビルドシステム等の話がまったくわからない、、、) © 2025 VEGA Systems Inc. 20
■参考 ・Zig Programming Language (https://ziglang.org/ja-JP/) © 2025 VEGA Systems Inc. 21