アルゴリズムとデータ構造 の感想
参照データ
タイトル | アルゴリズムとデータ構造 |
発売日 | 販売日未定 |
製作者 | N. ヴィルト |
販売元 | 近代科学社 |
JANコード | 9784764901629 |
カテゴリ | ジャンル別 » コンピュータ・IT » コンピュータサイエンス » 情報学・情報科学 |
購入者の感想
私が読んだ時の題名はレビュー・タイトル。当時はDijkstraを中心に構造化プログラミングの重要性が説かれていた時代だが、まだ一般に普及していたとは言えず、しかも理論が先行していたため、一般のプログラマにとっては具体的手本となるものがなかった。そこに登場したのが本書である。
本書の考え方は、ある目的を達成するためには、まずそれ用のデータ構造を決める必要があり、それに対してある種のアルゴリズムを(必要なら数段階)適用する事によって目的のプログラムが出来上がるというものであった。目的の規模が大きければ、それを機能的に細分化し、段階的に本手法を適用すれば、自然と構造化プログラミングを実践している事になる。本書の一つの特徴は、この手法を具体的な例に即して説明しており、かつ各アルゴリズムの効率を定量的に評価している点である。顕著な例は「ソート」である。幾つものソートの手法を紹介し、その手法に合ったデータ構造の選び方、そして各ソート法の得失を詳細に解説してあるので、私などはかなり経験を積んだ後も本書を傍に置き参考にしていた。二つ目の特徴は、当時正式な言語仕様の公表がなかったPascalでアルゴリズムが記述されている点である。Pascalの生みの親Wirthが書いた本であるから、ある時期までは本書がPascalの言語仕様の公式版と言えた。最後の特徴は、巻末にPL/Iを簡素化したPL/0用のコンパイラの構文解析系が載っている事である。著書が本書で述べている趣旨の集大成が読める点でも参考になったが、コンパイラ開発が専門である私にとっては、プログラミング言語の専門家Wirthの構文解析系が読めるという魅力があった。
データ構造とそれに付随するアルゴリズムの設計と言う観点で言えば、現在ではクラス設計をどうするかという点に話題は移っていると思う。だが、C++程度のオブジェクト指向言語には本書の内容は充分に通用するものである。プログラムをする上で、何を基本として考えるべきかという問題を豊富な例題を通して語ってくれる名著。
本書の考え方は、ある目的を達成するためには、まずそれ用のデータ構造を決める必要があり、それに対してある種のアルゴリズムを(必要なら数段階)適用する事によって目的のプログラムが出来上がるというものであった。目的の規模が大きければ、それを機能的に細分化し、段階的に本手法を適用すれば、自然と構造化プログラミングを実践している事になる。本書の一つの特徴は、この手法を具体的な例に即して説明しており、かつ各アルゴリズムの効率を定量的に評価している点である。顕著な例は「ソート」である。幾つものソートの手法を紹介し、その手法に合ったデータ構造の選び方、そして各ソート法の得失を詳細に解説してあるので、私などはかなり経験を積んだ後も本書を傍に置き参考にしていた。二つ目の特徴は、当時正式な言語仕様の公表がなかったPascalでアルゴリズムが記述されている点である。Pascalの生みの親Wirthが書いた本であるから、ある時期までは本書がPascalの言語仕様の公式版と言えた。最後の特徴は、巻末にPL/Iを簡素化したPL/0用のコンパイラの構文解析系が載っている事である。著書が本書で述べている趣旨の集大成が読める点でも参考になったが、コンパイラ開発が専門である私にとっては、プログラミング言語の専門家Wirthの構文解析系が読めるという魅力があった。
データ構造とそれに付随するアルゴリズムの設計と言う観点で言えば、現在ではクラス設計をどうするかという点に話題は移っていると思う。だが、C++程度のオブジェクト指向言語には本書の内容は充分に通用するものである。プログラムをする上で、何を基本として考えるべきかという問題を豊富な例題を通して語ってくれる名著。