ハマログ

株式会社イーツー・インフォの社員ブログ

新プログラミング言語Carbonを実際に動かしてみました

さて、Carbonと言えばみなさんご存知のとおりPHPの日時操作ライブラリの……ではありません。つい本記事執筆の前日、7月20日に発表された新しいプログラミング言語のCarbonです。

https://github.com/carbon-language/carbon-lang

一言でいえば、Carbonとは「GoogleがC++の後継を目指して作っている新しいプログラミング言語」だそうです。発表された直後、このタイミングでブログを投稿することになったのも何かの縁、と思ったので実際にREADMEに従って動かしてみました。なお、環境はUbuntu 22.04(WSL2 on Windows 11)です。

まず、下ごしらえとしてHomebrewを導入しておきます。

この公式ページにあるコマンド(/bin/bash -c “$…… 以下略)を実行し、このドキュメントにある4つのコマンドを入力してパスを通します。

Homebrewについては簡単ですが以上です。ちなみに、Ubuntuなのになぜaptじゃなくbrewを使わされるんだ、という点はCarbonの公式ドキュメントに「Debianのパッケージに不具合があるから本当はaptが良かったけどbrewにしてる」(意訳)と記載があります。

brewの準備ができたら、次の2つを導入します。そこそこ時間がかかるので要注意です。

$ brew install bazelisk
$ brew install llvm

1つ目のbazeliskは初めて知ったのですが、Googleの開発したビルドツールBazelのインストールをインストールしているようです。簡単に言えばGoogleが作ったmakeです。

2つ目のLLVMはOSSのあらゆるプログラミング言語に対応できるコンパイラ基盤、つまりプログラミング言語を作るためのフレームワークのようなものです。PHPエンジニアがWebサービスを作るためにLaravelを使うのと同じように、プログラミング言語の開発者はコンパイラやインタプリタを作るためにLLVMを使うのですね。

さて、ここまでできたのでさっそくCarbonを実行してみます。git cloneしてからbazel runを実行します。

$ git clone https://github.com/carbon-language/carbon-lang
$ cd carbon-lang
$ bazel run //explorer — ./explorer/testdata/print/format_only.carbon

terminal_image

ビルドのログが多くて目立ちませんがちゃんとHello world!できています。すぐ上にBuild completed successfullyと出ているのも成功した実感が湧き嬉しいですね。

それではHello worldの次は何か簡単なサンプルプログラムでも、と取り掛かりたいところですが今回はここまでです。

というのも、浮動小数点数(f64型)、range-based for(for/foreach文)、剰余演算子(%演算子)、論理演算子(ANDやOR)など色々実装されていないためです。実験段階として発表されたばかりで「まずは今年中にv0.1を完成させたい」という状況なので致し方ありません。

Carbonがどんな言語仕様なのかという概要は、英語ですが次のドキュメントにまとまっています。
https://github.com/carbon-language/carbon-lang/tree/trunk/docs/design

関数定義のfnや整数型のi64など全体的にRustっぽく思えますが、生のポインタを操作したり、C++ライブラリを直接扱えたりするのがCarbonがC++の置き換えを目指しているといったところでしょうか。

C++は確かに歴史のある言語ですが現在もC++20など更新されていますし、新しく出てきたRustが人気な中、Carbonがどうなるか楽しみです。

……ところで弊社のようなWeb開発ではC++を使うような場面はありませんし、私がCarbonにお世話になることは当分なさそうですね。

以上、プログラミングの話題なので業務知識っぽく見えるけど、実はそんなことない日記でした。

プログラミング

  koni   2022年7月21日


関連記事

最近の夏に感じること

どうも、暑かったり割と気温が下がって寒かったりと、 寒暖の差が激しい今日この頃で…

個人タスクをなんとか管理したい!

自分のタスク管理に悩むことがあるので、個人用のタスク管理に利用できるアプリを1部…

七夜月 2020

今年は蓮見が出来ないのではないか……。 そんな諦念が浮かぶかのように毎週末の天候…


← 前の投稿

次の投稿 →