2023年12月13日 05時00分 公開
特集/連載

プログラミング言語「Carbon」がC++ともRustとも違う点はこれだC++からの移行先になる?【後編】

「Carbon」は、「C++」の特徴を受け継ぐプログラミング言語として開発されており、「Rust」とも対比されることがある。Carbonは「C++」や「Rust」とは何が違うのか。

[Priyank GuptaTechTarget]

 オープンソースの汎用(はんよう)プログラミング言語である「Carbon」は、プログラミング言語「C++」の一部の特徴を受け継ぐ存在だ。CarbonはC++の他、C++と対比される「Rust」とも比べられることがある。その違いはどこにあるのか。

Carbonの現在の限界、「C++」「Rust」との違い

 Carbonの開発者は、メンテナンスと拡張の両方の目的においてソースコードが記述しやすくなるようにCarbonを設計した。その一環として、ソースコードの読みやすさと表現力を向上させるシンプルな構文を用いている。数学的な関数を組み合わせたプログラミングである「関数型プログラミング」の要素も、ソースコードの書きやすさに寄与している。

 現時点で、Carbonはまだ実験段階のプログラミング言語だ。そのため専用のコンパイラ(ソースコードを実行可能ファイルに変換するプログラム)はなく、デモ用のインタープリタを通じてのみ実行できる。インタープリタとは、プログラミング言語やスクリプト言語で書かれたソースコードを行ごとに読み込み、解釈して実行するプログラムを指す。

 さまざまなプログラミング言語用コンパイラのベースとなる「LLVM」を、Carbonが利用する計画があるかどうかは不明だ。LLVMを利用することになれば、Carbonの独自性能が失われる可能性がある。例えばプログラムとして正しく機能することを優先させるために、特定のメモリ安全性チェック機能が犠牲になるといった具合だ。Carbonの開発チームはこのような問題に対処するため、Carbonコミュニティーに対して、Carbonの開発への参加を積極的に呼び掛けている。

 Carbonは、C++と比較されがちな汎用プログラミング言語「Rust」と比べられることがある。Rustはコンパイル時に、変数のスコープ(プログラム内で変数を使う範囲)に基づいて必要なソースコードを自動的に追加する。これに対してCarbonでは、メモリを手動で管理しなければならない。Carbonの文法はRustよりもC++に近いと言われているため、Rustの文法になじみがないC++プログラマーが移行しやすい選択肢として、Carbonが適している場合がある。

TechTarget発 エンジニア虎の巻

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

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

news067.jpg

Xにおける「バレンタイン」を含む言及数は過去4年間で最多だがUGC数は最少 どういうこと?
ホットリンクは、X(旧Twitter)に投稿されたバレンタインに関するUGCについて調査しまし...

news061.jpg

Expedia幹部が語る旅行体験向上のためのAI活用とグローバルブランド戦略
Expediaは、日本での18周年を記念してブランドを刷新した。テクノロジーへの投資を強化し...

news046.png

B2Bマーケティング支援のFLUED、国内のEC/D2C企業20万社のデータベース「StoreLeads」を提供開始
B2Bマーケティング・営業DXを支援するFLUEDは、カナダのLochside Softwareが提供するECサ...