maya's blog

About programming, aws and ubuntu

プログラミングの基礎 第1章 読書メモ

プログラミングの基礎 Computer Science Library

浅井 健一 著

本書の目的

  1. デザインレシピ(プログラムを作る際に踏むべきステップを一通り定めたもの)の作り方

    • デザインレシピはおよそ全てのプログラミング言語に適応できる
    • デザインレシピの作り方を習得すると、プログラムを作ることが楽になる
  2. コンピュータサイエンス(CS)の基礎であるデータ構造とアルゴリズム

  3. ある程度の大きさを持つ意味のあるプログラムを作成

本書ではメトロネットワーク最短路問題を解くプログラムを作ることを題材に、以上3つを学ぶ

第1章

1.1 デザインレシピ

  • 正しいプログラムを作るにはどうすればよいか を習得することが目標
  • 実際にプログラムをかいてデザインレシピの考え方を取得する

1.2 使用する言語

  • OCaml
    • 「オーキャムル」って読みます
    • 関数型言語
    • 「単純、かつ強力」だから選択
    • JavaやCに比べコード量が10分の1になるらしい
    • 強力な型システム → 間違いを実行前に発見できる
    • コンパイルもできるため、Cと同様の早さ
  • 世界的にも、プログラミングの習得にはわかりやすい関数型言語から始め、その次にオブジェクト指向言語に進むのがよいとされています。

    • まじで?

1.3 準備

OCaml処理系のインストール方法とか…

僕の環境(Ubuntu 18.04)ではaptでocamlを入れたけど、日本語が文字化けしていた。

$ ocaml
        OCaml version 4.05.0

# "あ";;
- : string = "\227\129\130"
#

同様に悩んでいる人がちらほら。

結局~/.ocamlinitに以下を追記すれば解決した。

let printer ppf = Format.fprintf ppf "\"%s\"";;
#install_printer printer

1.4 参考となる資料