「Zig」はシステム開発における開発者の幾つかの悩みを解消し得る、新たなプログラミング言語だ。どのようなアプローチを採用しているのか。そのメリットとは。
企業で主流のシステムプログラミング言語としては「C」「C++」、近年では「Rust」などが存在する一方、新たな言語として「Zig」が頭角を現し始めた。ZigはC/C++の代替を目指しつつ、モダンな機能を備えている。本稿はZigの5つのメリットのうち、2つのメリットを取り上げる。
可能な限り最適化された実行可能ファイルをZigで作成するには、以下のシンプルなコマンドを実行する。
zig build-exe -O ReleaseFast prog_name.zig
ここで「-O ReleaseFast」は最適化レベルを指定するオプション、「prog_name.zig」はソースコードのファイル名を表す。複数のファイルをソースにして実行可能ファイルを生成することも可能だ。
Zigの特徴の一つがテストブロックだ。Zigでは、任意のソースコードファイル内に記述したテストブロックを独立して実行できる。この仕組みによって、実行可能ファイルをビルドせずに任意のテストを実施したり、簡単で迅速なプロトタイピング(試作品を用いた事前検証)をしたりすることが可能になる。
ビルドコマンド「zig test」を使うと、実行可能ファイルを生成することなく、ソースコードファイル内のテストブロックをコンパイルして実行できる。以下は「module.zig」というファイル内のテストブロックをコンパイルして実行するコマンドの例だ。
zig test module.zig
例として、以下のテストブロックを含むファイル「test.zig」を考えてみよう。
const std = @import("std"); test " => testing integer div built-in" { std.debug.print("\n" ++ "0 div 3 {}\n" ++ "1 div 3 {}\n" ++ "2 div 3 {}\n" ++ "3 div 3 {}\n" ++ "4 div 3 {}\n" ++ "5 div 3 {}\n" ++ "6 div 3 {}\n" ++ "7 div 3 {}\n" ++ "8 div 3 {}\n", .{ @divTrunc(0, 3), @divTrunc(1, 3), @divTrunc(2, 3), @divTrunc(3, 3), @divTrunc(4, 3), @divTrunc(5, 3), @divTrunc(6, 3), @divTrunc(7, 3), @divTrunc(8, 3) } ); }
これは、Zigの組み込み関数「@divTrunc」を使って、0〜8の整数を3で除算した結果を標準出力に表示するテストブロックだ。1行目の「const std = @import("std");」は、標準ライブラリ(プログラム部品群)を呼び出している。その後、計算式の表示とそれに対応する計算結果を整形して出力するために「std.debug.print」関数を用いている。
このテストブロックをzig testコマンドでコンパイルし、実行した結果は以下の通りだ(画面)。
次回は、5つ目のメリットを解説する
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
読まれた投稿のうち「リンク付き」はたったの…… データが示すFacebookのリアル
Metaは「2024年第4四半期版インテグリティレポート」を公開。ここには現在のFacebookで閲...
2025年のバレンタインデーに関するX投稿 「リポスト」を生むアカウントとは?
企業アカウントによるバレンタインデーキャンペーンが、Xユーザーの関心を集め、多くのリ...
どんな企業にも「縦型」「多言語」の動画コンテンツが必要な理由
マーケティングを進化させる鍵になるAI。具体的にはどのような形でツールに実装されてい...