Rustは、言語実装手法においてのプログラミングパラダイムは特定の実装手法に限定されない非純粋なマルチパラダイムプログラミング言語であり、複数の実装手法をサポートしています。
基本的な制御フロー構文はC言語に似ていますが、ほぼすべて命令文が式(expression)で表現される特徴があるためML(Meta-Language)言語に似ている面もあります。
特定のプログラミングパラダイムのみを使用してソースコードを記述する必要はなく、複数の手法を取り込んだコーディングを行えます。
・手続き型プログラミング---文法の表面的な記述
・オブジェクト指向プログラミング---型システムを用いたオブジェクト構造
・関数型プログラミング---ブロックコードのまとまりの意味論
・ジェネリックプログラミング---関数の入出力パラメータにジェネリック型を指定
・並行計算パラダイム---非同期機能を実現
Rustは「構造体と列挙型はデータを持つ」「implブロックは構造体と列挙型のメソッドを提供する」などの特徴を持つオブジェクト指向言語です。実装の詳細をカプセル化できます。
Rustは有界パラメトリック多型と呼ばれる仕組みを持ちます。ジェネリックスを使用して、異なるタイプの可能性のあるタイプと特性境界を抽象化して、それらのタイプが提供しなければならないものに制約を課します。このため、Rustは、継承の代わりに形質オブジェクトを使用する別のアプローチを採用しています。
Rustの設計において、既存の多くの言語と技術からインスピレーションを受けていますが、重要な影響の1つに関数型プログラミングがあります。
関数型プログラミングでは、「関数を引数に渡す」「関数を他の関数から戻す」「後で実行するために関数を変数に代入」など関数を値として使用します。
Rustは「パターンマッチング」「列挙型」などの仕組みなどに関数型プログラミングの影響が表れており、「クロージャ」や「イテレータ」などの機能を習得することで、慣用的で高速なRustコードを作成できます。
オーナーシップ(所有権)システムは、Rustの最もユニークな機能であり、「作成されたオブジェクトは、それを作成したスコープによって所有される」という仕組みです。
所有権ルールとして、以下のルールが適用されます。
・Rustの各値には「所有者」と呼ばれる変数がある
・一度に所有できるオーナーは1人だけに限定される
・所有者が範囲外になると、その値は削除される
Rustは、低レベルを制御するオプションを提供し、他言語が苦手とする低レイヤー用ユースケースを得意とします。
・メモリ管理
・データ表現
・並行処理の低レベルのおける動作
・他言語への埋め込み
・要求された空間/時間内での動作
・デバイスドライバ/OSの低レベルコード など
プログラマは、クラッシュやセキュリティホールの慣習的なリスクを回避して、Rustで低レイヤーの制御を行えます。さらに、スピードとメモリ使用の面においても、効率的で信頼性の高いコードを自然に導くように設計されています。
Rustのライブラリは「クレート(Crate)」と呼ばれます。
カテゴリとして以下の3タイプに分かれています。
・コアライブラリ
・標準ライブラリ
・外部ライブラリ
「crates.io」には、さまざまなクレートが登録されています。
MozillaのRust開発チームは、2月15日、 プログラミング言語「Rust 1.24」をリリースした。 【Rustとは】 マルチパラダイム言語 https://www.ossnews.jp/oss_info/Rust 【1.24のポイント】 ・Rustコードリフォーマットツール「rustfmt」(プレビュー版)を導入 ・インクリメンタルコンパイル機能がデフォルトで有効 ...
OSS×Cloud ACCESS RANKING