プログラム+インターフェース=モジュール

アルゴリズム + データ構造 = プログラム
Algorithms + Data Structures = Programs
N.ヴィルト
最近しばらく関数やライブラリのインターフェースについての雑感を書いてきましたが、プログラムにおけるインターフェースの位置付けに関して面白い記事があったのでその紹介と感想を。

その記事と言うのは、Rogue Engineer's Diary/やさぐれ日記さんの「「アルゴリズム+データ構造=プログラム」? 本当に?」という記事。その内容は、前回の記事でも紹介したN.Wirth氏著の古典的名著のタイトルでもあり、プログラミングにおける格言とも言える「アルゴリズム+データ構造=プログラム」という考え方には、「インターフェース」の観点が抜けているんじゃないか、「アルゴリズム+データ構造+インターフェース=プログラム」とするべきじゃないか、といった内容。

なるほど。うまい表現です。でも、個人的には、もうちょっと表現を変えて次のような表現にした方がしっくりきます。
  • アルゴリズム+データ構造=プログラム
  • プログラム+インターフェース=モジュール
プログラムはルーチン、モジュールはライブラリとも言い換えられるかもしれません。つまり、個々の処理を行うプログラム(ルーチン)にインターフェースを与えてやることで、人間が理解しやすい、再利用性のあるモジュール(ライブラリ)になる、というイメージです。目的の処理を実行する「プログラム」を書くだけではなく、それを次回に再利用できる「モジュール」に仕上げるための、インターフェース設計。「+インターフェース」によって、コンピュータが処理する「プログラム」を、人間が利用する「モジュール」へ変化させる。

考え方をの単純な言葉で表現してみるというのは、考え方が整理されて気持ちがいいですね。

【関連記事】
似て非なるインターフェース
関数のユーザビリティ
選択できない選択肢

【関連リンク】
「アルゴリズム+データ構造=プログラム」? 本当に?(Rogue Engineer's Diary/やさぐれ日記)

【関連書籍】
オブジェクト指向における再利用のためのデザインパターン
Javaの格言―より良いオブジェクト設計のためのパターンと定石 Nigel Warren
Algorithms + Data Structures = Programs Niklaus Wirth
珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造 - Jon Bentley


このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

人気エントリ
最近の記事
本のおすすめ

4274065979

4844337858

482228493X

4904807057

4873114799


最近のコメント
Links
プロフィール
  • Author:proger
  • 組み込み関係で仕事してます
ブログ内検索