プログラミング言語「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
-
製品資料
“攻撃者優位”なサイバーセキュリティ、全ての「穴」をふさぐ方法とは? -
製品資料
実際に悪用される脆弱性は4%前後 優先的に対処すべき脆弱性を把握するには? -
製品資料
HubSpotの機能を拡張する法人データ活用法 -
製品資料
面倒で非生産的な「名寄せ」作業 高精度&高効率に実施するには? -
製品資料
名刺管理には「その先」がある 成果のでない営業活動から脱却する秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
2
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
3
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
4
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
5
レガシーコードを捨てJavaで勘定系を再定義 ソニー銀行、フルクラウド化の全容
-
6
なぜ人はいるのにDXが進まない? ライオンも直面した“老害”レガシーシステム
-
7
マンガで解説:KSK2稼働で何が変わる? 税務調査の高度化に備えるデータ管理
-
8
脱VMwareに待った? AI基盤を掲げるBroadcomの思惑と情シスが直面する新コスト
-
9
生成AIの7割が「別画面・コピペ運用」 “導入”は進んでも定着せず
-
10
「0.3秒のスピード顔認証」の入退室管理が社員に好評 事例に学ぶオフィス改革
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
財務・会計はAI活用でどう変わる? 調査で見えた変革の道筋
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
7
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
8
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
9
ゼロトラストにおける「IDaaSの課題」と補完すべき重要機能とは?
-
10
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー