C++でもRustでもなく「Zig」が必要なのはなぜかプログラミング言語「Zig」とは【前編】

「Zig」はシンプルで強力な構文を備えた新しいプログラミング言語だが、注目点はそれだけではない。従来のコンパイル言語の概念を覆す、革新的な特徴を持つ。その特徴とは何か。

2024年09月04日 05時00分 公開
[Nilo StolteTechTarget]

関連キーワード

プログラマー | プログラミング


 機械語に近い「低水準言語」を扱う開発者の心をつかみそうな新しいプログラミング言語がある。その名を「Zig」という。2024年7月時点で完全版はまだ公開されていないが、開発が盛んで、コミュニティーの熱気もある。

 なぜ今新しいプログラミング言語が必要なのか。より具体的に言えば、Zigには「C」「C++」「Rust」「D」などのプログラミング言語を上回る点はあるのか。本連載はZigの主要なメリット5つを取り上げる。

「Zig」が必要なのはなぜ? その5つのメリット

メリット1.シンプルかつ簡潔な構文を備える

 複雑ではないことがZigの魅力の一つだ。文法を定義する「PEG」(Parsing Expression Grammar)ファイルは600行以内にまとまっている。

 Zigは、データの型に依存しない汎用(はんよう)的な関数やデータ型を記述する機能「ジェネリクス」や、コンパイルする前のソースコードに特定の処理をする「プリプロセッサ」を必要としない。つまり全ての仕組みがZig自体で記述されている。これはCやC++と比べて大きな改善点だ。

メリット2.コンパイル言語とインタープリタ言語の特徴を併せ持つ

 プログラミング言語の主な分類方法として、プログラミング言語で書かれたソースコードを機械語に変換する仕組みに着目するものがある。この分類に従うと、プログラミング言語は以下の2つに分けることが可能だ。

  • コンパイル言語
    • 人が読んで理解できるプログラミング言語で書かれたソースコードを、コンピュータが理解できる機械語に変換する作業(コンパイル)が必要なプログラミング言語。
  • インタープリタ言語
    • コンピュータがプログラムを実行する際に、ソースコードを一行ずつ解釈して実行するプログラミング言語。

 インタープリタ言語は、実行時にプログラムをコンパイルする「JIT(Just-in-Time)コンパイラ」ではなく、インタープリタを使ってプログラムを実行する。そのため一般的には、あらかじめコンパイラが機械語に変換するコンパイル言語に比べて、プログラムの実行速度が遅い。一方で修正と実行を繰り返しやすいなどの特性から、テスト、トラブルシューティング、デバッグは、概してインタープリタ言語の方が容易だ。

 Zigはこうした形式的な分類には当てはまらない、双方の特性を持ち合わせたプログラミング言語だ。Zigは、プログラムを直接機械語にコンパイルする。コンパイル時に関数の実行結果や変数などの値が確定している場合は、コンパイル時にプログラムを実行して、その結果をプログラムに埋め込むことができる。この仕組みはプログラムの実行速度を押し上げるだけではなく、言語自体の機能や性能を引き上げるものだ。


 次回は、3つ目と4つ目のメリットを紹介する。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

ITmedia マーケティング新着記事

news121.jpg

「ファクトチェック廃止」の波紋 Metaにこれから起きること
Metaがファクトチェックの廃止など、コンテンツに関するいくつかの重要なルール変更を行...

news026.png

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年1月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...

news041.jpg

「非常時にピザ1枚無料」のデータがドミノ・ピザのマーケティングに生む好循環とは? CMOに聞く
2024年10月にDomino'sのチーフブランドオフィサーからエグゼクティブバイスプレジデント...