• 検索結果がありません。

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

N/A
N/A
Protected

Academic year: 2021

シェア "コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?"

Copied!
52
0
0

読み込み中.... (全文を見る)

全文

(1)

人間科学科コミュニケーション専攻

白銀

純子

コンピュータ・サイエンス

2

7回

ソフトウェア

(2)

7回の内容

プログラミング言語

ソフトウェア開発の流れ

コンピュータの動作原理

ソフトウェアのインストール

プログラムの起動と実行

コンピュータの特徴

(3)

前々回の復習

(4)

外国人に手紙を書く場合どうする

??

相手がわかる言葉で手紙を書く

相手が理解できる言葉を覚えるのは大変

!!

コンピュータには、手紙

(命令書)で命令

コンピュータが理解できる言葉で手紙

(命令書)を書く

私は

...

I am...

(5)

外国人に手紙を書く場合どうする

??

相手がわかる言葉で手紙を書く

相手が理解できる言葉を覚えるのは大変

!!

コンピュータには、手紙

(命令書)で命令

コンピュータが理解できる言葉で手紙

(命令書)を書く

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 5

私は

...

%$&**!+#?...

I am...

(6)

コンピュータが理解できる言葉は

?

コンピュータが理解できる言葉

:

機械語

コンピュータは、

2進数しか理解できない

人間が理解するのは難しい

010001110101

命令書を人間が理解できる言葉で書き、

それを訳したものをコンピュータに渡す

プログラミング言語

(7)

プログラミング言語

(p. 71)

プログラム

(コンピュータへの命令書)を記述するための

言語

低水準言語

高水準言語

etc.

(8)

低水準言語

[1](p. 72)

ハードウェアの種類に依存する部分が多い言語

Ex. 2つの異なるCPU AとBで、ある同じ計算をするときに、

AとBで処理方法が違う

→Aを使うときとBを使うときでプログラム言語で書く命令を

変える必要あり

人間にとっては、プログラムを書きにくい

すごく細かい処理を書く必要性

Ex. 「10+20」の計算のために10個の命令が必要、など

コンピュータにとっては理解しやすい

(9)

低水準言語

[2](p. 72)

機械語

コンピュータが直接理解できるプログラミング言語

全て

2進数で記述

バイナリコード

」とも

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 9

001011101110000110101011

110001010111000101010010

...

(10)

低水準言語

[3](p. 72)

アセンブリ言語

機械語の命令を、英単語や記号で表した言語

命令を

2進数で考えなくて良い分、プログラムの記述が

簡単

書かれた命令を機械語に変換しないと、コンピュータは

命令を実行不可能

LD GR1, 10

ADD GR1, 20

ST GR1, 30

アセンブリ言語の例

(11)

高水準言語

(p. 72)

ハードウェアの種類を意識せずに記述できる言語

人間にとっては、アセンブリ言語よりも書きやすい

命令の処理方式によっていくつかに分類

手続き型

関数型

論理型

オブジェクト指向型

書かれた命令は、機械語に変換されて

コンピュータが実行

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 11

それぞれ、いろいろな言語あり

(12)

スクリプト言語

(p. 73)

命令書を機械語に変換することなく実行できる

プログラミング言語

人間が変換作業をする必要のない言語

⇔低水準言語

(機械語を除く)・高水準言語は、人間が

変換用ソフトウェアを使って、機械語に変換する作業を

する必要のある言語

記述したプログラムを「

スクリプト

習得するのが容易

Ex. HTMLやJavaScriptなど

(13)

言語処理方式

(14)

手紙を訳すには

?

手紙を翻訳する

手紙を通訳する

日本語

翻訳者

英語

通訳

受取人

日本語

受取人

プログラムも、同じように機械語に訳す

(15)

言語処理方式

(p. 73)

プログラミング言語で書かれた命令書

: 機械語に

変換しなければ、コンピュータは実行不可能

変換方式は大きく分けて

2種類

コンパイラ

: 翻訳

インタプリタ

: 通訳

(16)

コンパイラ

[概要](p. 75)

コンパイラ

: 命令書を機械語に翻訳し、

コンピュータで実行可能にするためのソフトウェア

Step 2. 手紙(英語)

Step 2. 手紙(英語)

Step 1. 手紙(日本語)

Step 1. 手紙(日本語)

Step 3. 手紙(英語)

外国人

日本人

翻訳者

(17)

コンパイラ

[概要](p. 75)

コンパイラ

: 命令書を機械語に翻訳し、

コンピュータで実行可能にするためのソフトウェア

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 17

日本人

Step 3. 手紙(英語)

Step 1. 手紙(日本語)

Step 2. 手紙(英語)

外国人

翻訳者

コンピュータ

Step 3. バイナリコード

Step 1. ソースコード

Step 2. バイナリコード

命令書を全て

翻訳して相手に渡す

「コンパイル」する

コンパイラ

(18)

コンパイラ

[詳しく](p. 75)

コンパイラ

/アセンブラ

バイナリコード

ソースコード

書く

バイナリコードを渡して実行させる

オブジェクトコード

オブジェクトコード

オブジェクトコード

リンク

(19)

用語

[1](p. 75)

ソースコード

: プログラミング言語で記述した命令書

オブジェクトコード

: ソースコードを翻訳したもの

コンパイル

: 高水準言語をオブジェクトコードに

翻訳すること

アセンブル

: 低水準言語をオブジェクトコードに

翻訳すること

(20)

用語

[2](p. 75)

実行可能プログラム

: コンピュータが実行可能な

形に変換・処理された命令書

ソフトウェアそのもの

連係編集

(

リンク

): 複数のオブジェクトコードを

連結して、

1つの実行可能プログラムを作成すること

1つのソフトウェアのソースコードは、複数のファイルに

分割して記述されることが多い

リンケージエディタ

(

リンカ

): 連係編集をするための

ソフトウェア

(21)

インタプリタ

(p. 76)

インタプリタ

: 命令書を最初から1行ずつ読んで

機械語に通訳するためのソフトウェア

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 21

Step 1. 手紙(日本語)

Step 1. 手紙(日本語)

Step 2. 手紙から一行ずつ(英語)

外国人

(22)

インタプリタ

(p. 76)

インタプリタ

: 命令書を最初から1行ずつ読んで

機械語に通訳するためのソフトウェア

Step 2. 手紙から一行ずつ(英語)

Step 1. 手紙(日本語)

外国人

日本人

Step 2. ソースコードから一行ずつ(機械語)

Step 1. ソースコード

コンピュータ

インタプリタ

通訳

命令書を一行ずつ

翻訳して伝える

(23)

ソフトウェアの開発

(24)

ソフトウエアの開発の流れ

ソフトウェアの開発計画から実際の開発、できあがった

ソフトウェアの利用やメンテナンスの流れ

:

ソフトウェアのライフサイクル

ソフトウェアは、利用者側が開発側に開発を依頼

利用者側

: 開発が業務としない企業や企業内の部署

開発側

: 開発を業務とする企業や企業内の部署

企画

要求分析

設計

実装

テスト

(25)

企画

ソフトウェアの利用者側がソフトウェアの導入を

決定する

(業務改善などのため)

RFP(提案依頼書)などを作成し、開発側に提示

RFP (Request For Proposal): 欲しいソフトウェアの内容や

予算、導入スケジュールなどの条件を書いた、利用者側

(客側・依頼者側)が作成する文書

提示する開発側は、多くの場合、複数の業者

(競争入札で

発注する業者を選定するため

)

開発側が

RFPについて検討し、ソフトウェアの詳細や

スケジュール

(

提案書

)、コストの見積もり(

見積書

)を提案

利用者側が、複数の業者からの提案を検討し、発注する

業者を選定、契約

(26)

要求分析

開発側が利用者側から、ソフトウェアに対する要望を

聞いて分析

どのような機能があれば良いか

?

開発の上での条件はあるか

?

機能以外で重要なこと

(セキュリティや保守性など)は

あるか

?

etc.

利用者側のニーズが実現可能かどうかなどを検討

実現可能と判断したニーズについて、実現するための詳細

(コンピュータで実現するために必要な事項)を決定(

仕様化

)

仕様化したニーズ

(要求)を文書化(記述した文書を

「要求仕様書」

)

(27)

設計

要求仕様書に書かれている要求を、どのように

コンピュータで実現するかを決定

どのような技術を使うか

?

すでに存在するソフトウェアやハードウェアで、使えるものは

あるか

?

どのような設計図にするか

?

etc.

(28)

実装

(29)

テスト

実装した

(プログラミング言語で記述した)ソフトウェアに

問題がないかをチェック

うまく動かないところはないか

?

入力したものに対し、適切な出力が出ているか

?

おかしな動作をするところがないか

?

要求仕様書に記述された要求が、すべて実現されて

いるか

?

要求仕様書に記述された要求が、適切に実現されて

いるか

?

etc.

(30)

運用・保守

運用

: ソフトウェアを導入し、利用

ソフトウェアをインストール

インストールしたソフトウェアを動作させ、利用

保守

: ソフトウェアのメンテナンス

不具合の修正

機能の追加

機能の内容の変更

etc.

(31)

ソフトウェアのインストール

(32)

ソフトウェア

(p. 78)

OS: HDDに記録されていなければコンピュータを

起動できない

HDDに記録されていない場合は、記録する作業を行う

市販されているコンピュータでは、

OSはあらかじめHDDに

記録されている

OSを含めてソフトウェアをHDDなどに記録し、

利用可能な状態にすること

=

インストール

(33)

インストール

[1](p. 78)

多くの場合、インストーラを使ってソフトウェアを

インストール

インストーラ

: ソフトウェアをインストールするための

ソフトウェア

ウィザード

(質問に答えていくことで、ソフトウェアをインストールしたり

設定するソフトウェア

)を使ってインストールするものが多い

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 33

メールアドレスの設定

メールサーバの設定

名前の設定

(34)

インストール

[2](p. 78)

インストーラの機能

ウィザードを使ってソフトウェアの初期設定

インストール場所に自動的にフォルダを作って、本体の

プログラムなどの必要なファイルを保存

起動用アイコン

(ダブルクリックするとソフトウェアが起動する

アイコン

)の作成

(35)

ソフトウェアの配布形式

CD-ROMまたはDVD-ROM

コンピュータに

CD-ROMやDVD-ROMを入れると、

自動的にウィザードが起動することが多い

Webサイトからダウンロード

ソフトウェアを利用するために必要なファイルを全てまとめて

圧縮し、

1つのファイルにしていることが多い

ダウンロードしたファイルを解凍し、「

setup.exe」ファイルを

ダブルクリックすると、インストーラが起動することが多い

解凍

: 圧縮されているファイルからもとの圧縮前のファイルを

取り出すこと

(複数のファイルをまとめて圧縮して1つのファイルに

している場合には、その複数のファイルを全て取り出す

)

(36)

OSとソフトウェアの連携[1]

ソフトウェア

: 基本ソフトウェアとアプリケーション

ソフトウェアに分類

基本ソフトウェア

(OS): ハードウェアを直接管理するための

ソフトウェア

ハードウェアに対して、様々な命令をする

アプリケーションソフトウェア

: ハードウェアには直接的には

関与しないソフトウェア

通常、マウスやキーボードで人間が操作するソフトウェア

ハードウェアとのやりとりが必要な場合は、

OSを仲介

Webブラウザ, メールソフト, Officeソフト, etc.

(37)

OSとソフトウェアの連携[2]

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 37

アプリケーションソフトウェア

Ex. Webブラウザ, メールソフト, Officeソフトなど

基本ソフトウェア

(OS)

Ex. Windows, Mac OS, Unixなど

ハードウェア

Ex. CPU, メインメモリ, HDDなど

ハードウェアとやりとりがしたい

Ex. HDDに保存してある

データを読みたい

アプリケーションソフトの要求を

伝える

Ex. HDDに保存してある

データを出すように命令する

ハードウェアの処理結果を

伝える

Ex. HDDからのデータを渡す

命令を処理して結果を伝える

Ex. HDDに保存してある

データを取り出して渡す

(38)
(39)

ソフトウェアの起動

[1](p. 78)

ソフトウェアの起動アイコンをダブルクリック

or 実行可能プログラムを指定

起動アイコンは、ソフトウェアの実行プログラムそのもの、

または実行プログラムのありかを示したもの

→ダブルクリックすることは、実行プログラムの指定と同じ

実行プログラムが

HDDからメインメモリに転送

ローディング

」と呼ぶ

(40)

ソフトウェアの起動

[2](p. 78)

ローディングされたプログラムの命令を

CPUが

取り出して解読

CPU

OSを記録

している領域

実行プログラムを

記録する領域

命令

データ

実行プログラム

実行プログラム

実行プログラム

入出力装置

(キーボード, ディスプレイなど)

補助記憶装置

メインメモリ

(41)

CPUの命令解読例(p. 80)

10+20」の計算をするプログラム(C言語)

x, y, zという名前の3つの箱を用意する

プログラムでは、データは箱に入れて扱う

yとzという箱にそれぞれ10と20を入れる

xという箱に、「y+z」の結果を入れる

計算結果を画面に表示する

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 41

#include<stdio.h>

void main() {

int x;

int y = 10;

int z = 20;

x = y + z;

printf("x = %d¥n", x);

}

(42)

CPUの命令解読例[手順図](p. 80)

デコーダ

ALU

50→51→52

プログラムカウンタ

LD→AD→ST

命令レジスタ

制御部

10→30

アキュムレータ

20

オペランドレジスタ

0

条件コードレジスタ

演算部

LD 101

AD 102

ST 100

30

10

20

OSを記録している領域

プログラムを記録する領域

50

51

52

100

101

102

CPU

メインメモリ

(43)

CPUの命令解読例[手順1](p. 81)

1.

プログラムカウンタによって、メインメモリの

50番地が

設定される

これにより、

50番地の「LD 101」命令が取り出され、

命令レジスタに転送される

2.

プログラムカウンタの数値を

1増やす

3.

デコーダが「

LD 101」を解釈して実行する

これにより、

101番地のデータをアキュムレータに転送

する

(「LD」はCPUへのデータの転送命令)

(44)

CPUの命令解読例[手順2](p. 81)

4.

プログラムカウンタの数値が

51なので51番地の

命令を取り出す

これにより、

51番地の「AD 102」命令が取り出され、

命令レジスタに転送される

5.

プログラムカウンタの数値を

1増やす

6.

デコーダが「

AD 102」を解釈して実行する

これにより、

102番地のデータをオペランドレジスタに

転送する

ALUにより加算処理が行われる(「AD」は加算命令)

10 + 20 = 30」が実行される

計算結果「

30」がアキュムレータに一時的に格納される

(45)

CPUの命令解読例[手順3](p. 81)

7.

プログラムカウンタの数値が

52なので52番地の

命令を取り出す

これにより、

52番地の「ST 100」命令が取り出され、

命令レジスタに転送される

8.

プログラムカウンタの数値を

1増やす

9.

デコーダが「

ST 100」を解釈して実行する

これにより、アキュムレータにあるデータ「

30」を100番地に

格納する

(「ST」はデータのメインメモリへの格納命令)

10.

次の命令へ進む

(46)

CPUの命令解読例[概要](p. 81)

C言語のプログラムの「x=y+z;」の計算をするために

Step1~Step9の手順

Step1~Step4: 「y」という箱からデータを取り出す処理

Step5~Step6: 「z」という箱からデータを取り出し、

y+z」の計算をする処理

Step7~Step9: 「x」という箱に「y+z」の結果を入れる

処理

(47)

コンピュータの特徴

(48)

コンピュータの特徴

(p. 81)

コンピュータでのプログラムの処理方式

デジタル方式

プログラム内蔵方式

(49)

デジタル方式

(p. 81)

全てのものを

2進数に変換して扱う方式

プログラム

入力・出力データ

数字

, 文字, 記号

図表

, 静止画, 動画, 音声, 音楽

etc.

論理素子・記憶素子

: CPUやメモリの構成要素

電圧の高低で動作を制御

電圧の高低を

2進数の0と1に対応

(50)

プログラム内蔵方式

(p. 82)

当初のコンピュータ

: 現在プログラムが行っている

処理をスイッチと配線の組み換えでその都度操作

スイッチと配線の組み換えで様々な命令を表現

非常に手間がかかり、間違いが多発

たくさんのスイッチの

ONとOFFを逐一切り替える必要

同じ処理をするために毎回プログラムを作成する必要

(51)

プログラム内蔵方式

(p. 82)

プログラム内蔵方式

: 作成したプログラムを

記憶装置に記憶させて利用する方式

プログラムを実行するときに命令を記憶装置から

取り出して実行

同じ処理をするためにプログラムは

1度だけ作成

用途に応じてプログラムを入れ替え、様々な処理を実行

Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2012, All rights reserved. 51

「フォン・ノイマン」という人に

よって提案された方式

フォン・ノイマン

: 「コンピュータの父」と呼ばれるアメリカの数学者

プログラム内蔵方式で動くコンピュータを「ノイマン型コンピュータ」

(52)

逐次制御方式

(p. 82)

メインメモリから命令が

1つずつ取り出されて実行

される方式

プログラムカウンタによって、命令が格納されている番地を

指定

その番地から命令を取り出して実行

プログラムカウンタの数値を

1増やして次の命令の

番地を指定

CPUとメインメモリの間の通信経路の転送速度のために

コンピュータ全体の処理の速度が遅くなる問題も存在

フォン・ノイマン・ボトルネック

参照

関連したドキュメント

回転に対応したアプリを表示中に本機の向きを変えると、 が表 示されます。 をタップすると、縦画面/横画面に切り替わりま

注意: Dell Factory Image Restore を使用す ると、ハードディスクドライブのすべてのデ

ウェブサイトは、常に新しくて魅力的な情報を発信する必要があります。今回制作した「maru 

しかしながら、世の中には相当情報がはんらんしておりまして、中には怪しいような情 報もあります。先ほど芳住先生からお話があったのは

黒い、太く示しているところが敷地の区域という形になります。区域としては、中央のほう に A、B 街区、そして北側のほうに C、D、E

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

 大都市の責務として、ゼロエミッション東京を実現するためには、使用するエネルギーを可能な限り最小化するととも