プログラミング言語「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 マーケティング新着記事

news060.jpg

Z世代が考える「日本が最も力を入れて取り組むべき課題」1位は「ジェンダー平等」――SHIBUYA109 lab.調査
SDGsで挙げられている17の目標のうち、Z世代が考える「日本が最も力を入れて取り組むべき...

news061.png

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

news193.jpg

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...