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

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

2023年12月13日 05時00分 公開
[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 マーケティング新着記事

news098.jpg

食品の高値安定傾向はどこまで続く?――インテージ調査
全国約6000店舗より収集している「SRI+(全国小売店パネル調査)」を基に実施した食品や...

news028.jpg

インターネット広告の新しいKPIと「アテンション」の再定義
最終回となる今回は、ターゲットに届いた広告の効果を正しく測定するための指標として「...

news158.png

売れるネット広告社、「売れるD2Cつくーる」にLP自動生成機能を追加
売れるネット広告社が「売れるD2Cつくーる」に、新たに「ランディングページ自動生成(AI...