コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

プログラミング言語がもつ概念,特に言語に依存しない普遍的な概念の必要性を比較と歴史を通して学ぶ本.特段難しい概念はでてこないし,かなり有名なものばかりだが,こういう知識があれば新しい言語を効率よく学習できたり,よろしくない実装を未然に防ぐことができるだろう.

以下,読書メモ.

  • 言語に依存しない普遍的な知識を比較と歴史から学ぶ.
  • プログラミング言語は楽をするために生まれた.
  • 文法は文字列と構文木の対応付けルール.
  • エラー処理は戻り値もしくは例外処理で対応する.
  • 名前のスコープは動的,静的.
  • 型とはビット列が何を表現しているか.
  • コンテナ = データ構造.
  • 文字列 = 文字集合,符号化,データ構造.
  • 並行処理時競合の解決には共有しない,書換えない,割り込まないなど.
    • デッドロックの問題にはトランザクショナルメモリのアプローチがある.
  • コンピュータの中に現実を模倣した”もの”を作るのがオブジェクト指向.
    • モジュール化,関数もデータのように扱う,クラスなど.
  • 継承によりクラスの再利用ができるが,多重継承は衝突という問題がある.
    • クラスの相反する側面 “インスタンス生成器” と “コードの再利用”