Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。

  • ZigのWebサイト

    ZigのWebサイト

Zigとは

Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。

Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++やRust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。

そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推論など、現代的な言語機能を備えています。また、C言語との連携が考慮されており、C言語で作った資産を活用できます。

また、Zigの生成する実行ファイルのサイズが小さいのも特徴です。ブラウザ上でアプリを実行するWebAssemblyにも対応しており、生成ファイルサイズが小さいという点でも有利です。

しかし、Zigにはスクリプト言語には当然実装されているGCと呼ばれるメモリの自動管理機構が存在しません。そのため、メモリの確保や解放はプログラマーが責任を持って管理する必要があります。

Zigのインストール

それでは、Zigをインストールして試してみましょう。

こちらに各OSごとにバイナリファイルが提供されています。バイナリを利用する場合、ZIPファイルを解凍し、パスを解凍したフォルダにパスを通しましょう。(Windows10/11であれば、Windowsメニューを開き「環境変数」を検索します。そして、環境変数PATHに、Zigのインストールパスを追加します。) 原稿執筆時点でZigのバージョンは0.9.1ですが、各種パッケージマネージャーでのインストールも可能となっています。こちらにコマンドの一覧があります。

macOSのHomebrewであれば、次のコマンドを実行します。

brew install zig

Windowsのchocolateyであれば次のコマンドを実行します。

choco install zig

Ubuntu/Linuxであれば次のコマンドを実行します。

snap install zig --classic --beta

一番簡単なプログラム

それでは、Zigで最も簡単なプログラムを作ってみましょう。以下のプログラムを「hello.zig」という名前で保存しましょう。

const std = @import("std");

pub fn main() !void {
  const stdout = std.io.getStdOut().writer(); // 標準出力を得る
  try stdout.print("Hello, World!\n", .{}); // メッセージを出力
}

コンパイラ言語ではありますが、直接ソースファイルを実行できます。以下のコマンドでプログラムを実行できます。

zig run hello.zig
  • 一番簡単なプログラムを実行したところ

    一番簡単なプログラムを実行したところ

プログラムを確認してみましょう。プログラムは、C言語と同じようにmain関数から始まります。標準ライブラリのstdより、標準出力stdoutを得て、printで「Hello, World!」を出力するプログラムとなっています。 なお、上記の手順では、プログラムを実行することだけに注力しましたが、Zigで実行ファイルを作成するには、最初にプロジェクトを作成すると簡単です。

mkdir hello
cd hello
zig init-exe

するとプロジェクトのひな形が生成されるので、「src/main.zig」を編集します。そして、次のbuildコマンドを実行します。

zig build

この記事は
Members+会員限定記事です。

ログイン/会員登録する