プログラミング言語「Zig」とは【後編】
C、C++の後継「Zig」が“プログラミングの未来”なのはなぜか
「Zig」は、「C」「C++」の後継を目指す比較的新しいプログラミング言語だ。将来のプログラミングの一つの展望を映し出すそのアプローチとは。Zigのメリットを解説する。
「Zig」は「C」「C++」の後継を目指す比較的新しいプログラミング言語だ。現代的な言語設計と安全性を取り入れており、さまざまなメリットを備える。Zigはプログラミング言語の“一つの展望”を映し出す存在だ。Zigの主なメリット5つのうち、本稿は5つ目を取り上げる。
「Zig」が“プログラミングの未来”なのはなぜ?
併せて読みたいお薦め記事
連載:プログラミング言語「Zig」とは
新たなプログラミング言語を学んでみよう
メリット5.デバッグが容易
そもそもデバッガーは、プログラムを1行ずつ実行するためにシンボル(ソースコード内の変数や関数などの要素と実行可能ファイル内の要素を対応付ける情報)を生成しなければならない。これはプログラムをデバッグモードで別途コンパイルする手間を要する。加えて、デバッグモードで作成した実行可能ファイルは実行速度が遅い場合がほとんどであり、デバッグの時間を増やす原因になる。
Zigは組み込み関数である「@breakpoint()」を使用して、開発者がソースコードにブレークポイントを設置できるようにしている。例えば変数の値を表示する「std.debug.print()」関数の呼び出し直後に@breakpoint()を挿入することで、特定の変数の状態を確認したい箇所で、実行を一時中断できるようになる。
ソースコードにブレークポイントを設定できるようになることでデバッグの効率が上がる他、リリースバージョン用とデバッグ用でソースコードを分けて作成する必要がなくなる点もメリットだ。
次のソースコードが、「main.zig」というファイルにあるとする。このソースコードは、繰り返し構造の「for」ループ内に@breakpoint()関数を配置している。
const std = @import("std");
pub fn main() void {
for (0..3) |i| {
std.debug.print("i = {}", .{i});
@breakpoint();
}
}
このソースコードでは、ループの反復回数を示す変数iの値を表示するprint()関数を呼び出した直後に、@breakpoint()を配置している。ループの反復ごとに@breakpoint()の直前プログラムの実行が一時停止し、iの値が表示される。
画面に示す実行例では、main.zigをコマンドラインツールでコンパイルして実行する際、「ReleaseFast」モードを指定している。ReleaseFastモードは、リリースバージョン向けに可能な限り最適化して実行可能ファイルを生成するモードだ。次に、デバッガー「GNU DeBugger」(GDB)を呼び出して、先ほど生成した実行可能プログラム名を指定して実行する。GDBが起動したら、「r」(実行)コマンドを入力して「Enter」キーを押す。プログラムはiの値を表示し、@breakpoint()を挿入したで停止する。「c」(再開)コマンドを入力してEnterキーを押すと、プログラムの実行が再開する。以降のループでは、Enterキーを押せば、デバッガーは直前に入力したコマンド(ここではcコマンド)を繰り返す。
かつてインタープリタ言語の専売特許だった機能を、コンパイル言語も搭載するようになった。この流れは、インタープリタ言語のメリットを維持しつつプログラムの実行速度を向上させる動きを示すものだ。こうしたトレンドはプログラミング言語の将来の展望を浮き彫りにしている。Zigもこのトレンドを追い、コンパイル言語の限界を押し広げながら、シンプルながらも強力なプログラミング言語を目指している。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社うるる] 「入札市場」攻略ガイド:効率的に落札するためのポイントを徹底解説 -
製品資料
[株式会社うるる] 入札情報に特化した「販路拡大」「効率化」のためのサポートツールとは? -
市場調査・トレンド
[株式会社うるる] 公共入札に成功する企業と失敗する企業の「5つの違い」 -
製品資料
[日本ビジネスシステムズ株式会社] 専門家が教える、Microsoft 365の「テナント統合/分離」を成功に導く秘訣 -
製品資料
[rakumo株式会社] Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
2
Claude利用8割のGMO、AI人材の評価軸が「トークン管理」に変わった
-
3
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
4
「テザリング依存」に潜む落とし穴 “遅いVPN”を解消するネット構築術
-
5
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
6
「IT運用・情報システム業務」に関するアンケート
-
7
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
8
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
9
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
10
被害額は過去最高額 それでも「サイバー犯罪者が捕まらない」3つの理由
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
7
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「標的型攻撃メール」事例・サンプル集
-
10
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー