プログラミングの基礎

プログラミング ノ キソ

プログラミングの基礎の表紙
プログラミング
著者:
浅井健一(アサイ, ケンイチ)
出版社:
サイエンス社
出版日:
2007年02月
ISBN:
9784781911601
シリーズ:
Computer science library
在庫:
在庫あり
4.17(6 件 / 楽天ブックス)

なぜ注目されているか

言及数
451位
総合694位 ↑ 3 ランクアップ 言及 10 件・うち記事 6 件を掲載
02320222023202420252026

技書の森解説

関数型言語 OCaml を使い、プログラムを組み立てる考え方そのものを入門の段階から身につけるための教科書が『プログラミングの基礎』です。著者は浅井健一、版元はサイエンス社 (Computer Science Library 3) で、2007 年 2 月 25 日に発行されました。版元の内容紹介は、デザインレシピを用いてプログラミングに必要な思考法を学び、メトロネットワーク最短路問題を解きながらデータ構造とアルゴリズムを身につける、入門者のための教科 / 参考書と説明しています。版元のページでの難易度の表示は中級です。

全 24 章の構成、最短路問題とデザインレシピ

第 1 章「はじめに」でデザインレシピと使用する言語を紹介したあと、基本的なデータ、変数と関数の定義、条件分岐、さまざまなエラー、組とパターンマッチ、レコード、リストと進みます。第 4 章以降のいくつかの章にはデザインレシピの節があり、関数定義、条件分岐、構造データ、データ定義、再帰関数と、扱う対象ごとに設計の手順を示します。題材の路線網は第 8 章の節で駅名と駅間の情報を定義するところから現れ、第 12 章「ダイクストラのアルゴリズム」で最短路の考え方と正当性を学んだあとも、第 13 章、第 15 章、第 16 章、第 17 章に路線網のプログラムを扱う節が置かれています。第 16 章には最初の完動プログラムという節があり、その後も 2 分探索木の節と駅間の距離を取り出す関数の高速化の節、最短路問題における例外処理、ダイクストラ法のデータアクセスとヒープの節が続きます。第 19 章はモジュールの章で 2 分探索木をモジュールにし、第 20 章で赤黒木をモジュールとして開発します。最後は第 24 章「まとめ―プログラミングとは―」で、OCaml を習得して、この先の道という節で締めくくられます。

型とデータの形から関数を組み立てる考え方

一つの題材を全編で育てていく構成は、データ構造とアルゴリズムを個別の知識として並べるのではなく、実際の問題を解くための部品として順に必要になる形で学ばせる工夫です。OCaml は静的な型を持ちながら、型をいちいち書かなくても処理系が推論する言語です。項目の組を表す型と、いくつかの形のどれか一つを表す型を組み合わせる 代数的データ型 の考え方では、データの形が決まると、その場合分けに沿って関数の骨組みも決まり、自分自身を含む形のデータには自分自身を呼ぶ関数が対応します。デザインレシピは、この対応を手順として明示し、入門者でも同じ道筋で関数を書けるようにする方法です。点と点のつながりを扱う グラフアルゴリズム は経路探索やネットワーク解析の土台になる分野で、一つの題材の上で実装まで通すことで、探索の考え方とデータ構造の選び方が結び付きます。

副作用を後半に回す順序と、読む前の注意

目次では、値の書き換えや画面への表示のような副作用を伴う処理は第 21 章「逐次実行」以降にまとめられています。前半は値を返すだけの関数で組み立て、参照透過性を保ったまま書く経験を積んでから、配列や参照型による書き換え、ヒープの実装へ進む順序です。手続き型の言語から入った人には慣れない順序ですが、変数の書き換えに頼らずに書く練習を先に積む設計になっています。一方で、本書は 2007 年 2 月の刊行で、OCaml の処理系や開発環境の導入手順は刊行時のものです。手元の環境を整える部分は OCaml の公式の案内で補う前提で読む必要があります。また、特定の業務アプリケーションの作り方や、Web 開発の手順を求める人に向けた本ではありません。

大学の講義の教科書や参考書を探している人、あるいは独学でプログラミングを学んだものの、データの形から設計を組み立てる筋道を一度きちんと身につけたい人にとって、一つの問題を全 24 章かけて解き切る本書は、その筋道を手を動かしながら確かめられる一冊です。OCaml という言語を通して得た考え方は、型を持つ他の言語で関数を設計するときにもそのまま使えます。

言及した記事 (6 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: