【読書メモ】「コーディングを支える技術」を読んで
【内容】
概要としては、どのプログラムでも共通する文法や関数、変数、制御文などについて
仕組みやその歴史を説明している本です。
本書を読んだからPGスキルが飛躍的に上がる訳ではないと思いますが、
普段なにげに使用しているものが
・どのような仕組み、考えを持って設計されているのか
・汎用的な部分の言語比較
などなどを知ることは無駄でないと思います。
まだまだ初心者の域をでていない自分にとっても、おもしろいです
①メモ
「型について」
1,0か1であらゆる情報を表現するにあたり、電気がとっているか通っていないか判断している
2,一つのランプがついているかいないかを判断する(電気が通っているか否か)中で、より少ないランプでより多くの数を表現できるのが二進数だった。
3,おなじ0か1の連続でもどう解釈するかによって、情報がかわるため「型」が存在する
4,ユーザ定義型の(型を組み合わせて新しい方を作る)試みがCの構造体
5,ユーザ定義型の型にアクセス制御をつけていったものが、javaのpublicやprivate
「値をコンテナに格納することとメモリでの管理について」
1,配列
配列は、メモリ上に連続して領域を確保して格納するイメージ
検索などの場合は、配列の格納番地+添字の数によってできるため、検索は得意
値の登録や削除は、不得意。
連続した領域に値を挿入または削除すると、後ろの値をつめたり、後ろにずらしたりする必要がある
格納データの数が大きければ大きいほど、ロスになる
2,リスト
リストは、メモリ上に連続した領域を確保する必要がない。
格納する値と後ろの値の格納先の情報がメモリに持っている。
そのため、値の登録や削除は、登録されている値の数に左右されない
一定の処理時間となる。
3,連想配列
連想配列は、まず
①適当な領域をメモリ上で確保
②添字にたいして、ハッシュ値を割りあてる。
ハッシュ値はチラシ値とも言われているものらしいです。
ランダムの値を添字に割り当てるということですね。
③ランダムで割りあたった番地に値を格納する
ちなみに
①ハッシュがかぶる場合の管理が必要