書籍概要

歴史をたどってしくみを学ぶ コンピュータ入門

著者
発売日
更新日

概要

コンピュータは,私たちの生活になくてはならないものになりました。パソコンはもちろん,身近なところではスマートフォンや家電製品などにもコンピュータが内蔵されています。では,これらのコンピュータはどのようなしくみで動いているのでしょうか?

本書は,コンピュータのしくみをわかりやすく解説した入門書です。コンピュータの持つさまざまなしくみについて,どのようにして生まれ,現在に至るまでどのように発展してきたのか,その歴史をたどりながら学んでいきます。

前半の第I部では,コンピュータの基本的なしくみを歴史と共に解説します。後半の第II部では,並列コンピュータ,AI,量子コンピュータなどの高度な技術が,基本的なコンピュータのしくみの上にどのように構成されているのかをわかりやすく解説します。

こんな方におすすめ

  • コンピュータのしくみについて知りたい人

サンプル

samplesamplesamplesamplesample

目次

【Part I】コンピュータのしくみとその歴史

第1章 コンピュータの歴史を概観する

  • 1.1 コンピュータとはどんなものか?
  • 1.2 コンピュータは誰が発明した?
  • 1.3 コンピュータにあって卓上計算機にないものは?
  • 1.4 卓上計算機がコンピュータの小型化をもたらした
  • 1.5 身の周りにあるコンピュータからスーパコンピュータまで
  • 1.6 コンピュータであるための必須要件―プログラム内蔵方式―とは?
  • 1.7 コンピュータはスイッチのかたまりだ
  • 1.8 ムーアの法則
  • 1.9 コンピュータの動作速度を表すヘルツHzとは?

第2章 0と1の世界

  • 2.1 情報を0と1で表す
  • 2.2 2進数と10進数
  • 2.3 マイナスの数を表す変わった方法
  • 2.4 「無限」にある値を「有限」の2進数で表す
  • 2.5 文字コードの歴史を紐解く
  • 2.6 人間の五感を0, 1で表す
  • 2.7 コンピュータの命令を0, 1で表す

第3章 機械語を解釈・実行するハードウェアの世界

  • 3.1 スイッチの動作を論理で読み解く
  • 3.2 一つの電灯を複数個所からON/OFFするスイッチの謎を解く
  • 3.3 機械式計算機の基本はたし算だった
  • 3.4 状態を持つ回路―順序回路
  • 3.5 コンピュータは,命令を読み出し,解釈,実行する順序回路
  • 3.6 記憶装置の歴史を紐解く
  • 3.7 CPUと入出力装置
  • 3.8 ヒューマンインターフェイスとしての入出力装置のしくみ

第4章 機械語の上に構築するソフトウェアの世界

  • 4.1 裸のハードウェアを包むオペレーティングシステム(OS)の歴史
  • 4.2 高水準プログラミング言語の作る世界
  • 4.3 高水準プログラミング言語でプログラムを作る
  • 4.4 プログラムを機械語に翻訳するコンパイラ
  • 4.5 プログラムを解釈・実行するインタープリタ

第5章 計算の手順を考える

  • 5.1 プログラミングの前にアルゴリズムを考えよう
  • 5.2 世界最古のアルゴリズム―ユークリッドの互除法
  • 5.3 ごまんとある整列のアルゴリズム
  • 5.4 バブルソートのアルゴリズムとプログラム
  • 5.5 クイックソートのアルゴリズムとプログラム

【Part II】高性能コンピュータのしくみとその歴史

第6章 最速を目指すコンピュータ

  • 6.1 単体コンピュータの高性能化の歴史
  • 6.2 世界1位を目指すスーパコンピュータの歴史

第7章 AIとGPU

  • 7.1 AIの栄枯盛衰
  • 7.2 ニューラルネットワークの栄枯盛衰
  • 7.3 深層学習を可能としたコンピュータの高性能化
  • 7.4 GPUの歴史を紐解く

第8章 量子コンピュータ

  • 8.1 量子コンピュータの歴史とその速さの秘密
  • 8.2 量子演算と量子回路
  • 8.3 量子コンピュータのこれから

サポート

補足情報

ASCシミュレータ&アセンブラシステムについて

概要

ASCシミュレータ&アセンブラシステム(以下「ASCシステム」という)は,本書のコラム「モデルコンピュータの命令とデータの形式」(P.62)において定義したメモリからの読み出し,書き込み,たし算,停止の4命令を含む10命令からなるASC命令セットに対するシミュレータとアセンブラからなるシステムです。

シミュレータは,3.5節の図3.53(P.99)で定義した命令サイクルを忠実に実現しています。通常のコンピュータのように停止命令(HLT)まで連続実行もできますが,しくみの理解を深めるため,機械命令単位あるいは状態単位のステップランにより,きめ細かに動作を制御して画面で見ることができます。

状態単位のステップランを行いますと,3.5節の図3.55(P.100),図3.56(P.101)に示した読み出し命令の読み出しから実行まで,あるいはAppendix 2(P.228)に示したたし算命令から停止命令までの各命令の読み出しから実行まで(図A.6から図A.13まで)の動作を見ることができます。

アセンブラは,4.2節の図4.5(P.135)に示したようにアセンブリ言語で記述したプログラムを機械語に変換します。アセンブリ言語の仕様は,下記説明に従ってダウンロードするファイル中にある「説明書」の中で詳しく説明していますのでそちらをご覧ください。

ASCシステムのダウンロード方法
  1. 以下のURLにアクセスしてください。
    https://github.com/mj-hd/ASC-Simulator-and-Assembler/releases/latest
  2. 「Assets」の下にある「ASC.vXX.zip」("XX"は最新のバージョン番号を表す)をクリックすると,ダウンロードを開始します。
ASCフォルダの内容

ダウンロードした「ASC.vXX.zip」ファイルを解凍すると,ASCフォルダが表示されます。

ASCフォルダには,ASCシミュレータとASCアセンブラの2つのシステムのほかに,ASCアセンブリ言語によるサンプルプログラムの説明(サンプルプログラム自体はサブフォルダsample内にある)およびシステム全体の説明書が含まれています。

プログラムの使用時に,不明な発行元に対する警告が出たら,[はい]や[実行]をクリックするなどして,PCへの変更を許可します(Windowsによって「PCが保護されました」というメッセージが出た場合は,いったん[詳細情報]をクリックしてください)。

サンプルプルグラムについて

サンプルプログラムには,本書全体を通して一貫して使用している「たし算」のプログラムをはじめ,乗算,階乗,除算,平均,ビット計数など,多様なプログラムが含まれています。簡単な命令セットでも工夫次第でいろいろな計算ができることを理解していただければ幸いです。

併せて,何か意味のあるプログラム作りに挑戦し,その成果を寄せていただければ,このサンプルプログラムに追加させていただこうと考えています。

商品一覧