プログラミング言語「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エンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー