【図解あり】プログラム特性の「リユーザブル」についてわかりやすく解説してみた。

プログラム特性_リユーザブル_単語の意味コンピュータの仕組み
サバ缶
サバ缶

どうもこんにちは!
サバ缶(@tech_begin)です。

基本情報や応用情報技術者試験で頻出する「プログラムの特性」に関する問題。

今回はその特性の1つである「リユーザブル」について解説していきます。

もし分かりづらい箇所や、間違っている箇所があればお気軽にTwitterへご連絡ください!

プログラム特性とは

それではまず、少しおさらいをしておきましょう。

すでに何があるのか知っている方は、飛ばして大丈夫です!

プログラムの構造上 生じる性質を分類したのが「プログラムの特性」です。

その「プログラムの特性」は4つに分類されます。

プログラムの特性
  • リロケータブル(再配置可能)
  • リユーザブル(再使用可能)
  • リエントラント(再入可能)
  • リカーシブ(再帰的)

このうちの1つ『リユーザブル(再使用可能)』について学んでいきます。

リユーザブル(再使用可能)とは

リユーザブルとは、メインメモリに読み込まれたプログラムを繰り返し使えることを言います。

また、「リユーザブル」という性質を持ったプログラムを『再使用可能プログラム』と呼びます。

プログラムが実行されるまでの流れ

プログラムは、補助記憶装置に保存し、主記憶装置(メインメモリ)に読み込まれて実行されます。
主記憶装置の中には、細かいデータが格納される場所があり、そこにプログラムが読み込まれます。

メインメモリへ読み込まれるイメージ
クリックで拡大🔍

詳しくはプログラム実行までの流れの記事をご覧ください。

リユーザブルの言葉の意味を理解する

サバ缶
サバ缶

リユーザブル……言葉だけだとイメージしにくいですよね。

英語で『Reusable』と書きます。
リサイクル推進の用語に「3R」というものがあるのをご存知でしょうか。

リサイクル推進用語 『3R』
  • Reduce(リデュース)
    • 原材料の量を減らすこと。また、メンテナンスにかかる資源を減らすため耐久性のある製品を作ること。
  • Reuse(リユース)
    • 使用済み製品(中古)を使いまわしていくこと。
  • Recycle(リサイクル)
    • 廃棄物を素材として別の製品に作り替えること。

このうちの「Reuse」と全く同じです。繰り返し使うという意味があります。

英単語を分解してみましょう。

プログラム特性_リユーザブル_単語の意味
  • 「Re」 再び
  • 「use」 使う、利用する
  • 「able」 可能

これで「リユーザブル=再使用可能」という意味が結びついたのではないでしょうか。

リユーザブル(再使用可能)と呼ぶための条件

以下の2つがあります。

リユーザブルの条件
  • 実行時に自分自身のコードを書き換えたりしないこと
  • 内部の状態を表す変数などを変更・または変更したままにしないこと

リユーザブルは、メインメモリに読み込まれたプログラムが「何度も繰り返し実行できること」を指します。これを言い換えると「何度実行しても同じ結果が返ってくること」でもあります。

上記の条件を満たさない場合は、リユーザブルではないと言えます。
つまり裏を返すと、上記の条件を満たせばリユーザブルであると言えます。

リユーザブル(再使用可能)である必要性と目的

プログラミングをやる上で、『基本概念・基本思想』と言いますか、、、
IT業界で共通した認識があります。

それは『車輪の再発明はしない』ということです。

「広く受け入れられ確立されている技術や解決法を(知らずに、または意図的に無視して)再び一から作ること」を指すための慣用句。(引用:Wikipedia)

既にあるものは使いまわして効率的にコーディングしていこうぜ、という考え方のことです。

プログラムを簡単に再利用できるようにする性質は、以下のような特性を利用します。
言語によって書き方や考え方が異なる場合があるので、ここでは割愛いたします。

  • モジュール性
  • 疎結合
  • 高い凝集性
  • 情報の隠蔽
  • 関心の分離

リユーザブルとリエントラントの関係性

リユーザブルとリエントラントは、包含関係にあります。

プログラム特性_リユーザブル_リエントラントとの含有関係
クリックして拡大🔍

リユーザブルは、メモリに読み込んだプログラムを、先頭アドレスから繰り返し実行することができます。

一方、リエントラントは、プログラム実行中、同じ処理が呼び出されても問題なく完了する性質のことです。
(以下で、主記憶装置にプログラムが読み込まれるイメージをおさらいしています)

メインメモリへ読み込まれるイメージ
クリックして拡大🔍

つまり、マルチタスクと呼ばれる並列実行が可能なプログラムとも言えます。

参考

Code reuse(Wikipedia)

実行プログラムの主記憶装置

再帰的(リカーシブ)・再入可能(リエントラント)・再使用可能・再配置可能

タイトルとURLをコピーしました