「Rust」の主な特徴として、「マルチパラダイムプログラミング言語」「オブジェクト指向プログラミング」「関数型プログラミング」「オーナーシップ(所有権)システム」「低レイヤーシステム言語」「ライブラリ(クレート)」について紹介します。

「Rust」の主な特徴

「Rust」の主な特徴として、「マルチパラダイムプログラミング言語」「オブジェクト指向プログラミング」「関数型プログラミング」「オーナーシップ(所有権)システム」「低レイヤーシステム言語」「ライブラリ(クレート)」について紹介します。

■関連する比較ページ

「Rust」の主な特徴

■マルチパラダイムプログラミング言語

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」

「crates.io」には、さまざまなクレートが登録されています。

→crates.io(The Rust community’s crate registry)

Rust最新TOPICS

【OSS】プログラミング言語「Rust 1.24」リリース---コードリフォーマットツール「rustfmt」、インクリメンタルコンパイル機能(2018年02月20日 11:03)

MozillaのRust開発チームは、2月15日、 プログラミング言語「Rust 1.24」をリリースした。 【Rustとは】 マルチパラダイム言語 https://www.ossnews.jp/oss_info/Rust 【1.24のポイント】 ・Rustコードリフォーマットツール「rustfmt」(プレビュー版)を導入 ・インクリメンタルコンパイル機能がデフォルトで有効 ...

Rust最新CLOSEUPコラム

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

SIer企業の「リスキリング」実現ロードマップを解説 〜開発現場で必要なスキルを実践しながら学べる学習プラットフォーム〜

エンジニアにとって「情報発信」は重要なのか? ~テックピット DEVELOPERS RESKILLING CONFERENCE クロージングセッション~

ローコード/ノーコードのツール比較と内製化 ~ユーザー企業は、ノーコード/ローコードで内製化できるのか?~

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter