Rust (プログラミング言語)
2015年5月16日、安定版となるRust 1.0がリリースされた。1.0版の後、安定版およびベータ版が6週間おきに定期リリースされている。またナイトリー版が毎日リリースされている。新たな機能はナイトリー版で開発が進められ、ベータ版で動作が検証されている。
2016年8月2日にリリースされたFirefox 48にはRustで書き直されたメディアパーサが組み込まれており、Mozillaが開発しているブラウザのFirefoxにおいてRustで書かれたコードが書き加えられる初例となった。
2016年9月にRustはFedora 24の標準コンポーネントに加えられ、RPMのパッケージ管理システムを用いてのインストール作業が容易化されている。
リソースのメモリ確保は基本的にはスタックメモリを利用しており、ヒープメモリを利用したメモリ確保はBoxやVecなどの特定の型のみで限定的に利用されている。
コンパイル時に型のサイズが決定できない可変長配列を表すような型はヒープメモリを利用するBox型を使用してリソースを管理する。Boxリソース自体はスタックメモリで管理されるが、Boxリソースが所有権を持つ実体のリソースはヒープメモリで管理される。標準のヒープメモリ確保にはシステムアロケータを利用するが、対象プラットフォームやビルド時の指定により他のメモリ確保APIを利用することもある。ヒープメモリはスタックメモリに比べて速度性能が落ちるため、必要時にのみ限定的に利用されている。
システムプログラミング言語には効率良いリソース管理機能が必須である(例: メモリ・ファイル管理)。C言語はプログラマがリソースを直接管理し高い効率を得られる反面、メモリリークのようなバグ混入の危険性を孕んでいる。より高級な言語(例: Java)ではガベージコレクションのような動的リソース管理機構により高い安全性を得られる反面、動的管理のオーバーヘッドが必ず付きまとう。
Rustは所有権を軸としRAII・参照・借用チェッカーなどを言語仕様として組み入れることで、リソース管理検証をコンパイル時・静的におこなう。ゆえに動的管理のオーバーヘッドを避けつつ、安全性が担保されたリソースアクセスが可能になっている(c.f. ゼロコスト抽象化)。
以下はRustのリソース管理を支える個別の概念である。
Jim Blandy, Jason Orendorff: 「プログラミングRust」、オライリージャパン 、ISBN 978-4873118550 (2018年8月10日)。
κeen, 河野 達也, 小松 礼人:「実践Rust入門 "言語仕様から開発手法まで" 」、技術評論社(2019年5月8日)。
Steve Klabnik, Carol Nicholes:「プログラミング言語Rust 公式ガイド」、 KADOKAWA、ISBN 978-4048930703 (2019年6月28日)。
Steve Klabnik, Carol Nichols:プログラミング言語 Rust, 2nd Edition
酒井 和哉:「Rustプログラミング入門」、オーム社、ISBN 978-4-274-22435-5(2019年10月13日)
初田 直也, 山口 聖弘, 吉川 哲史, 豊田 優貴, 松本 健太郎, 原 将己, 中村 謙弘:「実践Rustプログラミング入門」、秀和システム、ISBN 978-4798061702(2020年8月22日)
山口 聖弘 : 「RustではじめるOpenGL」 、インプレスR&D 、ISBN 9784844378556(2020年02月21日)。