プログラミング言語「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
-
製品資料
[LRM株式会社] 「標的型攻撃メール」事例・サンプル集 -
製品資料
[LRM株式会社] セキュリティ教育はなぜ「年間計画」を立てる必要があるのか? -
製品資料
[LRM株式会社] セキュリティの重要性が伝わらない…… 効果がない社員教育から脱却する方法 -
製品資料
[LRM株式会社] 「標的型攻撃メール訓練」導入ガイド 社員の意識を確実に高める仕組みの作り方 -
事例
[株式会社マクニカ] アイカ工業に学ぶ脆弱性対策 情シスが把握できずにいたアセットも正確に把握
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
2
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
3
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
4
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
5
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
6
ただなのに「12時間以内の復旧」も要求 無償OSSに商用レベルを求める企業の末路
-
7
ANAが専用回線から移行した「NaaS」の全貌 ネットワーク準備が数カ月から数週間に
-
8
業務引き継ぎで困ったこと 大企業200人調査で判明した課題の第1位は
-
9
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
10
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
ホワイトペーパーランキング PR
-
1
生成AIのハルシネーションを防止 回答精度を高めるセマンティックレイヤーとは
-
2
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
3
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
4
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
5
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
6
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
7
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
8
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
9
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー