「お気楽 Rust プログラミング超入門」のフォントを Web フォント (Noto Sans JP, Noto Sans Mono) に変更し、印刷用の CSS を追加しました。Web ブラウザの印刷機能を使って PDF に変換することもできます。表示が崩れるときはフォント Noto Sans Mono CJK JP をインストールしてください。
Rust は Mozilla によって開発されているシステムプログラミング用のプログラミング言語です。C/C++ と同じく、プログラムはネイティブコードにコンパイルされ、実行速度も C/C++ に匹敵するといわれています。これはあとで試してみましょう。
Rust は 2015 年 5 月 16 日に ver 1.0 がリリースされた新しい言語です。それ以降、6 週間間隔で定期的にリリースされていて、2024 年 12 月時点での最新バージョンは 1.83.0 です。並列処理、関数プログラミング、オブジェクト指向プログラミングなど、最近の言語の良いところを取り入れています。ガベージコレクションはありませんが、データに「所有権」[*1] という概念を導入することで、効率的で安全性の高いメモリ管理を行うことができるそうです。
M.Hiroi は Rust のことを C++ と同じく何でもできるプロフェッショナルツールという印象を持っています。メモリ管理のほかにも難しいところがたくさんあるとは思いますが、Rust は新しい言語なので、C++ よりも学習しやすいのではないか、と期待 [*2} しています。
M.Hiroi は Rust でプログラムを作るのは初めてです。本稿では、簡単なプログラムを作りながら Rust を勉強していきたいと思っています。まあ、初心者が作るプログラムなので、Rust らしいプログラムは書けないと思います。間違いやお気づきの点がありましたら、メールでご指摘いただけると助かります。本稿は M.Hiroi の「覚え書」にすぎません。たいしたことはできませんが、よろしければお付き合いくださいませ。
Rust は次のページからインストールすることができます。
Ubunts 系の OS の場合、インストールは簡単です。Ubunts 22.04 (WSL2) であれば、上記ページに書いてあるように、次のコマンドを入力して画面の指示に従うだけです。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl (cURL) は URL シンタックスを用いてファイルを送信または受信するコマンドラインツールです。次のコマンドでインストールすることができます。
sudo apt install curl
その後、シェルで rustc --version が実行できればインストールは成功です。rustc は Rust のコンパイラです。
$ rustc --version rustc 1.83.0 (90b35a623 2024-11-26)
それでは、お馴染みの「たらいまわし関数」を使って、Rust と clang, clang++ (version 14.0.0) の実行時間を計測してみましょう。Rust の場合、たらいまわし関数は次のようになります。
リスト : たらいまわし関数 (tarai.rs) fn tak(x: i32, y: i32, z: i32) -> i32 { if x <= y { z } else { tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y)) } } fn main() { println!("{}", tak(24, 12, 0)); }
Rust の拡張子は .rs です。時間計測はコマンド time を使います。time で時間を計測する場合、プログラムの起動時間も含まれることに注意してください。実行結果は次のようになりました。
$ rustc -O tak.rs $ time ./tak 1 real 0m7.497s user 0m7.497s sys 0m0.000s $ clang -O2 tak.c $ time ./a.out 1 real 0m7.503s user 0m7.502s sys 0m0.000s $ clang++ -O2 tak.cpp $ time ./a.out 1 real 0m7.581s user 0m7.520s sys 0m0.010s
Rust は C/C++ とほぼ互角の速度を叩き出しています。Rust がこんなに速いとは驚きました。興味のある方はいろいろ試してみてください。
『お気楽 Rust プログラミング超入門』の著作権は筆者「広井誠 (Makoto Hiroi)」が保持します。無断使用や無断転載は禁止いたします。『お気楽 Rust プログラミング超入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は出典を明記してくださるようお願いいたします。
ただし、ドキュメントの内容とプログラムは無保証であり、利用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。