プログラマのための硬派なコンピュータ学

概 要

デキるプログラマなら知っておきたいハードウェアとソフトウェアの基礎を解説した入門書です。ソフトウェアの動かし方を理解するだけではなく、コンピュータそのものがどのような仕組みで動いているのか体系的に理解し、仕事に役立てることがデキるプログラマの条件です。本書では、表層のソフト部分を取り除き、CPUロジックを中心としたコンピュータの中身と、コンピュータシステムの基礎構成、プログラムの動く仕組み、オペレーティングシステムの役割、プログラミング言語の特性など、プログラマが知っておきたい知識を、プログラムを交えた豊富な図解で実践的に解説しています。情報処理技術者試験にチャレンジする人にも最適です。

著者 清野克行
価格 本体2400円(税別)
ISBN 978-4-7980-2302-1
発売日 2009/6/26
判型 A5
色数 2色
ページ数 374
CD/DVD
対象読者 初級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Part1 PCの成り立ち

Chapter1 PCのハードウェア構成を知る

1.1 標準的なPCの構成

1.2 カバーを外してPC内部を見る

1.2.1 電源ユニット

1.2.2 マザーボード

1.2.3 CPU

1.2.4 メインメモリ

1.2.5 ハードディスクドライブ

1.2.6 Flash SSD

1.3 外部入出力機器

1.3.1 標準的な外部入出力機器

1.3.2 外部入出力インターフェイス

1.3.3 外部記憶装置

1.3.4 ネットワークカード

1.3.5 プリンタ

1.3.6 スキャナ

1.3.7 タブレット

1.3.8 プロッタ

Part2 プログラムの動く仕組み

Chapter2 コンピュータと2進数

2.1 ノイマン型コンピュータとは

2.2 ノイマン型コンピュータでの処理方式

2.3 演算・制御は2進数で行われる

2.4 10進数と2進数

2.5 ディジタル信号と2進数

Chapter3 数を扱う仕組み

3.1 2進数と16進数・8進数・10進数の関係

3.2 2進数のデータ表現

3.3 符号なし整数での加減乗除

3.3.1 2進数の加算

3.3.2 2進数の減算

3.3.3 2進数の乗算

3.3.4 2進数の除算

3.3.5 符号付き整数

3.3.6 2進数の小数

3.3.7 実数表現=浮動小数点数

Chapter4 論理と記憶の仕組み

4.1 論理回路

4.1.1 AND回路(論理積)

4.1.2 OR回路(論理和)

4.1.3 EXOR回路(排他的論理和)

4.1.4 NOT回路(インバータ)

4.2 出力反転回路

4.2.1 NAND(ナンド)回路

4.2.2 NOR(ノア)回路

4.3 ブール代数

4.4 順序回路

4.4.1 順序回路とは

4.4.2 フリップフロップ

4.4.3 レジスタ

Chapter5 マシンコード

5.1 ノイマン型コンピュータとマシンコード

5.1.1 コンピュータ内部での情報表現と演算処理

5.1.2 マシンコードでのCPU処理

5.2 マシンコードとアセンブリ言語

5.2.1 アセンブリ言語とは

5.2.2 より実際的なマシンコード

5.3 x86アセンブリ言語

5.3.1 x86アセンブリ言語の実行方法

5.3.2 レジスタ

5.3.3 ポインタ

5.3.4 ロード/ストア命令

5.3.5 算術演算命令

5.3.6 シフト命令

5.3.7 論理判断と分岐

5.3.8 スタック操作

5.3.9 入出力

5.3.1 0割り込み処理

Part3 オペレーティングシステムの機能

Chapter6 マルチプロセス

6.1 プログラムはどのように実行されるべきか

6.2 マルチプロセスの考え方

6.3 プロセス管理機能

6.4 プロセスの状態と状態遷移

6.5 プロセススケジューリング

6.5.1 ラウンドロビン

6.5.2 多重レベルフィードバックキュー

6.6 割り込みシステム

6.6.1 割り込み処理

6.6.2 ユーザプログラムから見た割り込み処理

6.7 マルチスレッド

6.7.1 マルチプロセスの問題点

6.7.2 スレッドの仕組み

Chapter7 仮想記憶

7.1 仮想記憶システムの必要性

7.2 セグメントオーバレイ方式

7.3 ページング方式での仮想記憶

7.4 セグメントテーブルでの仮想記憶

Chapter8 入出力とファイルシステム

8.1 ファイルシステムと問題点

8.2 ファイル構造の抽象化

8.3 Unixのファイルシステム

8.4 ファイルアクセスのパフォーマンス

Chapter9 ネットワーク

9.1 初期のネットワークと問題点

9.2 ネットワーク規格の標準化

9.3 OSI7層モデルでの各層機能

9.3.1 第1層―物理層

9.3.2 第2層―データリンク層

9.3.3 第3層―ネットワーク層

9.3.4 第4層―トランスポート層

9.3.5 第5層―セッション層

9.3.6 第6層―プレゼンテーション層

9.3.7 第7層―アプリケーション層

9.4 データの送受信とヘッダ情報

Chapter10 データベース管理

10.1 初期のデータベースはどうだった?

10.2 リレーショナルデータベースの登場

10.3 データベースの構成

10.4 RDBのデータ表現

10.5 データベースオブジェクト

10.6 データベース管理システム

10.7 データベースへのアクセス―SQL

10.7.1 DDL―データベース定義用のSQL文

10.7.2 DML―データベースアクセス用のSQL文

10.7.3 DCL―ユーザ管理・データ操作用のSQL文

Chapter11 障害対策と機密保護

11.1 障害対策

11.2 機密保護

Part4 プログラミング言語の変化と進化

Chapter12 初期の高級言語

12.1 高級言語によるプログラミング

12.2 FORTRAN―史上初の高級言語

12.2.1 FORTRANによるプログラミング

12.2.2 簡単なFORTRANプログラム

12.3 COBOL―事務処理用の高級言語

12.3.1 COBOLの簡単なプログラム

12.3.2 COBOLのプログラム構造と記述

Chapter13 構造化言語とオープンシステム

13.1 構造化言語の必要性

13.2 C言語―最もポピュラーなコンパイラ言語

13.2.1 C言語の生い立ち

13.2.2 C言語でのプログラミング

13.2.3 システムプログラム―マルチプロセスでの例

13.2.4 システムプログラム―ソケット通信での例

13.3 C言語でのコンパイラの仕組み

13.3.1 アセンブリ言語と高級言語

13.3.2 マシンコードとアセンブラ

13.3.3 コンパイラの仕組み―Cコンパイラの例

13.4 BASIC―エンドユーザコンピューティングの雄

13.4.1 BASIC言語の登場とその背景

13.4.2 Visual BasicとRAD環境

13.4.3 開発モデルへの影響

Chapter14 インターネット時代のプログラム開発

14.1 インターネットの登場

14.2 Perl

14.2.1 スクリプト処理目的のインタープリタ言語

14.2.2 インターネット時代のスクリプト言語として

Chapter15 オブジェクト指向

15.1 オブジェクト指向の起源

15.2 基本演算

15.3 メッセージ交換

15.4 クラスとインスタンス

15.4.1 継承

15.4.2 抽象クラス

15.4.3 クラスのインスタンス化

15.4.4 メソッドとプロパティ

15.4.5 オーバーロード

15.4.6 オーバライド

15.5 オブジェクト指向の拡張

Chapter16 インターネット時代のインタープリタ言語

16.1 サンプルの実行環境

16.2 最初のプログラム―Hello World!

16.3 売上金額を表示するサンプル

16.4 従業員番号から氏名を表示するサンプル

16.5 DBから従業員一覧を表示するサンプル

16.6 DBから従業員情報を表示するサンプル

Chapter17 Java―中間言語方式の代表的言語

17.1 Javaの変遷

17.1.1 Javaはアプレットから始まった

17.1.2 JavaアプレットからサーバサイドJavaへ

17.2 Javaプログラムの作成と実行

17.2.1 JVMでの実行

17.2.2 Javaでのサンプルプログラム

PR

秀和システム