わたしたちは長年、知識を表現する手段として言語や図表、数式、楽譜、絵画、造形物、写真などを用いてきましたが、1960年代になってプログラムという手段が加わわりました。プログラムはそれまで表現できなかった世界を描けるようにしたのです。プログラムで表現された知識はコンピュータ上で動作する動的なものです。ここに大きな可能性が生まれました。プログラムは単純なものから巧妙なものまでいくらでもあります。数値計算、コンピュータ科学、企業システム、自治体サービス、音楽の演奏、病理診断、機械の制御、書物読み聞かせ、各種シミュレーションなどをはじめとして数えきれないほどあります。
コンピュータの利用形態は多岐にわたりさまざまですが、そのすべてにおいてそれぞれに適したプログラムが使われています。
プログラムはこのように多くの領域で使われていますが、これらのプログラムが動作するすべてのコンピュータは同じ原理で動作しています。そしてプログラミングの基本的考え方は同じです。
「ビットから始めるプログラミング」はプログラミングの基本的考え方について紹介します。
はじめに、コンピュータのしくみについて紹介します。プログラミングの理解にはコンピュータの知識が必要になります。詳細な知識でなくても、コンピュータの原理程度の知識は欠かせません。
次にコンピュータで扱うデータ表現について紹介します。代表的なデータは文字列データと数値データです。さらにこれらのデータを組み合わせたデータ構造の典型的な例である配列、キュー、スタックなどについて紹介します。プログラミングでは、情報を集めてその性質をつまびらかにすることが大切です。この作業を通してデータ構造が明らかになると、それをどのように処理するかが見えてきます。
さらにデータの処理方法について紹介します。データ処理は、最終的にはコンピュータが用意したマシン命令で表現しますが、マシン命令のレベルは人にとって分かりにくいので、プログラミング言語を使うのが一般的です。「ビットから始めるプログラミング」では、広く使われているプログラム表現に準じた方法を用いて、データ処理について紹介します。
「ビットから始めるプログラミング」は、プログラミングとは何か知りたいと思っている人たちを対象にしています。比喩を用いてなんとなく分かるというのでなく、厳密さを失わず、論理の展開をはしょることなく、ビットの説明からはじめ、最後にはプログラムをどのようにまとめるかまで分かるように努めています。
「ビットから始めるプログラミング」の目次は次の通りです。ダウンロードして、ご活用ください。 ⇒ ビットから始めるプログラミング
目次
第1章 | コンピュータのしくみ |
1.1 | 2進法 |
1.2 | アドレス付メモリ |
1.3 | プロセッサ |
1.4 | しくみの普遍性 |
第2章 | データ表現 |
2.1 | 文字列 |
2.2 | 文字コード |
2.3 | 数値 |
(1) | 2進固定小数点数 |
(2) | 2進浮動小数点数 |
(3) | 10進固定小数点数 |
2.4 | データ構造 |
(1) | 配列とポインタ |
(2) | 構造体 |
(3) | 待ち行列 |
(4) | スタック |
(5) | 連結リスト |
(6) | 辞書 |
第3章 | プログラムの表現方法 |
3.1 | 値の文字列表現 |
(1) | 文字列リテラル |
(2) | 数値リテラル |
(3) | 論理値 |
3.2 | 変数と代入 |
3.3 | 配列と辞書 |
(1) | 配列 |
(2) | 辞書 |
3.4 | 演算 |
(1) | 文字列演算 |
(2) | 算術演算 |
(3) | 比較演算 |
(4) | 存在確認演算 |
(5) | 論理演算 |
(6) | 演算つき代入 |
3.5 | 条件判定 |
(1) | 形式1 if-else-end |
(2) | 形式2 if-elif-else-end |
3.6 | 繰り返し |
(1) | while-end |
(2) | for-end |
3.7 | 関数 |
(1) | 利用者定義関数 |
(2) | staticオプションつき関数の利用 |
(3) | 再帰呼び出し |
(4) | 組み込み関数 |
3.8 | 例外 |
第4章 | モジュール |
第5章 | プログラムの構造 |
第6章 | プログラムのメモリ割り当て |
本ブログは、「ビットから始めるプログラミング」を中心にして、プログラミングで必要となる話題を少しづつ紹介していきたいと考えています。