共通科目情報処理(講義)、生物資源学類対象、2000年10月31日
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/shigen-kougi-2000/2000-10-31
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/~yshinjo/
- 通信速度の感覚、bps (bit/seconds)、byte / seconds, K,M,G,
- インターネットで使われている技術(続き)
- 検索の考え方
- インターネット社会にも、規則や習慣がある。次の略語は、知っていると便利。
- 空間と時間を変換する技術としてキャッシングと圧縮がある。
- コンピュータ言語には、プログラミング言語の他に、スクリプト言語や
マークアップ言語がある。
- ソース・プログラムを実行するには、コンパイラ方式とインタプリタ方
式がある。Java はその中間。
- WWW では、ハイパーテキストという仕掛けが使われており、
そのために HTML と呼ばれるマークアップ言語が使われている。
- マークアッ
プとは、文書(テキスト)に、「ここは表題」、「ここは箇条書」といった、
文書の構造を示す目印(マーク)を付けること。
- HTML でハイパーテキストを表現するために、URL という形式が使われている。
WWW ブラウザは、WWW でのクライアントに相当する。
WWW サーバから、データを取り寄せ、表示する。
WWW ブラウザは、基本的には、直接WWWサーバに要求を送る。 WWW サーバ
(httpd)は、普通は、ファイルからデータを読み出し、WWWブラウザに返す
(図の(1))。
図? CGIの仕組み
設定によっては、WWW ブラウザは、直接 WWW サーバに要求を送らずに、
WWW Proxy サーバ
に要求を送ることがある(図の(2))。
proxy
(
プロキシ、
プロクシ
)
とは、「代理」という意味。
WWW Proxy は、 WWW ブラウザに代わって、WWW サーバと通信をするプログラ
ム。
WWW Proxy は、WWWブラウザから受け取った要求を、WWW サーバに送ります。
WWW サーバから送られた結果は、WWWブラウザに返す。
WWW Proxy の利用目的
-
キャッシング(caching)。
一度アクセスしたページの内容を、ローカル(同じホ
スト内)のファイルに保存し、もう一度要求が来た時には、それを返す。
保存されたものを
キャッシュ(cache)
という。
- より高速な通信経路を選ぶため。
- 「防火壁」を越えるため。
- データの加工(フィルタリング)。
空間と時間の交換
- キャッシングを行なうと、より多くの記憶容量が必要になる。空間的には
損。
- うまく働くと、速くなる。時間の点で得。
得をするのは、同じデータをもう一度使う時だけ。
同じデータを1度しか読まないなら、キャッシングをすると、ディスクに書き
込んだり、余計な中継のオーバーヘッドがあるので、時間的にも損になる。
データ圧縮は、空間的に得をするために、計算時間を犠牲にする。
ただし、通信時間の節約になるので、全体の時間は得をすることもある。
キャッシングは、ブラウザのメモリやブラウザが動いているホストのディスク
(ファイル)に行なわれることがある。
この場合、WWWブラウザは、WWWサーバに要求を送る前に、まず、メモリやファ
イルに保存されていないかをチェックし、あれば、それを使う。
メモリ中のキャッシングは、かなり効くので、普通は使うとよい。
ディスク(ファイル)へのキャッシングは、電話回線のような遅い回線を使っ
ている時には、効きくことがあるが、イーサネットのような速い回線に繋がっ
ている時には、効かないことが多い。
気が付かない間に見えない所でディスク容量を消費して大事なデータが保存で
きなくなることがある。
言語の分類
コンピュータ言語は、コンピュータと人間の両方が「理解」できる「人工言語」。
コンピュータのハードウェア(CPU)が本当に「理解」できるのは、機械語
だけ。コンピュータが「理解」できるために、コンピュータ言語では、
「構文」と「意味」が厳密に決まっている。
コンピュータ言語の種類
- プログラミング言語(プログラマ)
- スクリプト言語(強力な利用者、管理者)
- マークアップ言語(ドキュメントを書く人)
コンピュータ言語を学ぶことの意義
- 新しい物の考え方を学ぶ。コンピュータの身になってものを考えるる
- コンピュータを使う時に、コンピュータの動きが予想できるようになる。
プログラミング言語とは、プログラムを書くための人工言語である。人間の思
考の速度ととコンピュータの速度の差を埋めるもの。
さまざまなプログラミング言語
- C 言語、C++言語
- Java
- BASIC
- Fortran
- Lisp
分類
- 手続き型。コンピュータのハードウェア(CPUとメモリ)を抽象化したもの。
- 関数型。数学の関数で基づく。
- 論理型。数学の論理で基づく。
- オブジェクト指向。コンピュータの中にオブジェクトと呼ばれる、
擬人的な単位を作る。
人間が書いたプログラムを、ソース・プログラム(ソース・コード)という。
ソース・プログラムのままでは、コンピュータで実行することができない。
コンピュータが実行可能のは、機械語のプログラムだけ。
2つの実行方式
- コンパイラ方式。ソース・プログラムを、CPUが実行可能な機械
語に変換する。変換するためのプログラムをコンパイラという。プログラムを
実行する時には、コンパイラはいらない。
- インタプリタ方式。ソース・プログラムを、ほとんどそのままの形で
「データ」としてメモリに保存している。インタプリタと呼ばれるプログラム
が、「データ」として保存されているプログラムを実行する。プログラムを実
行時には、インタプリタが必要である。
インタプリタは、プログラムの一種であり、普通は、コンパイラ方式の言語で
書かれていて、機械語に変換された形でコンピュータに蓄えられている。
(インタプリタもまた別のインタプリタで動いていることもある。)
Javaは、中間。
メタレベル・プログラミング。インタプリタの動きを制御する。
C言語は、コンパイラ言語。C言語のコンパイラは、C言語で書かれている。
CPUは、機械語のインタプリタ。
ソースは、資産。2000年10月25日、マイクロソフトから Windows のソース・
プログラムが盗まれた可能性が発覚した。マイクロソフトは、否定している。
オープソ・ンース。ソースは、free (自由に見ることができる、無料)。
ハードウェアの話。
- CPU(Central Processing Unit)。計算のための部品。
- メモリ(主記憶)。記憶のための部品。揮発的で速い。
- 入出力装置(I/O)。
- ハードディスク(2次記憶)。記憶のための部品。永続的で遅い。
- キーボード、マウス、ディスプレー(モニタ)。人間との通信のための部品。
- ネットワーク。他のコンピュータとの通信のための部品。
プログラミング言語は、主に CPU とメモリの動作を制御する。
プログラミング言語からは、ハードディスクは、ファイルとして見える。
プログラミング言語の構成要素と CPU と主記憶の抽象化の関係。
- 変数。
- メモリを抽象化したもの。
-
代入
- メモリ間のコピーを抽象化したもの。
- 関数(+,−,*,/,<,>,<>,=など)
- CPUの計算機能を抽象化したもの。
- サブルーチン
- よく使われる小さなプログラムの断片。名前がある。
大きなプログラムを小さなサブルーチンの集合として作る。
分担作業をする。再利用。手抜き。
-
if
, for
, while
- プログラム・カウンタの制御を抽象化したもの。
-
ファイルの扱い
- ファイル操作、永続的なメモリの利用。
プログラム・カウンタ: CPU の中にある、小容量の記憶のための部品(レジ
スタ)で、メモリに入っている機械語のプログラムのうち、どこを実行してい
るかを示す。
データ型(符号)
普通のプログラミング言語では、そのままでは音や絵の符号は扱えない。
Sun Microsystems社によって開発されたオブジェクト指向プログラミング言語。
Java は、WWW(WorldWide Web)のブラウザで動作してブラウザの機能を拡
張することができる。
WWWブラウザの基本的な機能:ユーザが要求した「データ」を
表示する。
Java 対応ブラウザでは、サーバから「プログラム」がブラウザに届き、
それが実される。
Java で出きること(外部の専用のアプリケーションやPlug-inと呼ばれる機能
でもできることも多い。)
- 動画像、アニメーションの表示
- 音声データの演奏
- ユーザとの対話
Javaのソース・プログラムは、テキスト・エディタ(文字だけを効率的に
打ち込むためのプログラム、mule など)などで記述される。
Java言語で記述されたけソース・プログラムは、Javaコンパイラによ
り、Java仮想計算機(Java Virtual Machine)と呼ばれる仮想的なコンピュー
タの機械語に変換される。
この機械語は、バイト単位で解釈されることからバイト・コードとも呼ばれる。
Java仮想計算機のの機械語を実行させる方法:
- Java仮想計算機のインタプリタのプログラムを動かす
- Java仮想計算機のプログラムを本当の計算機(CPU)の機械語に変換して動かす。
Java のプログラムは、様々なハードウェアやオペレーティング・システムで
動作する。
WWWブラウザには、JavaVM のインタプリタが組み込まれている。
Java アプレットは、Java仮想計算機の機械語によるプログラムと、それ
に与えるデータをひとまとまりにしたもの。
プログラミング言語は、アプリケーション・プログラム本体の記述に使われる。
これに対して、スクリプト言語とは、アプリケーション本体ではなく、アプリ
ケーションの細かな動作を変更したり、アプリケーション本体を変更すること
なく機能を追加したりするために使われる言語である。
プログラミング言語
- アプリケーション・プログラマにより使われる
- 記述されたプログラムは、コンパイラにより機械語に変換され、実行する時には機械語しか残っていない。
スクリプト言語
- アプリケーション・プログラマではなく、アプリケーションの利用者や
システム管理者により使われる。
- スクリプト言語により記述されたプログラムは、アプリケーション本体
の中にあるインタプリタにより、解釈実行される。
スクリプト言語の例
- Microsoft Visual Basic (Microsoft Word, Excel で動作する)
- Visual Basic Script
- Macintosh の Apple Script
- Perl
- Ruby
- csh, sh (bsh)
- Java Script
- Emacs Lisp
決まりきった作業をコンピュータにやらせるには、スクリプト言語を活用でき
るようになりたい。
-
マークアップ(markup)する:
-
文書(テキスト)に、「ここは表題」、「ここは箇条書」といった、文書の構
造を示す目印(マーク)を付けること
-
マークアップ言語(mark-up language)
- マークアップのための目印を文書に埋め込むための人工言語
マークアップ言語の種類
マークアップされていないテキストは、
平らなテキスト(plain text)、
(
プレーン・テキスト
)
。
マークアップ言語でマークを付ける時の方法としては、テキストに
タグ(tag)(名札の意味)
を埋め込む。
日本語におけるマークアップの例:
- 括弧「」で括れば誰かの発言を意味する。
- これは括弧"「" と "」" の間のテキス
トに誰かの発言という意味のマークが付けられている
HTML では、「<
」 と 「>
」で括られた範囲がタグ。
タグの種類
<name>
開始タグ
</name>
終了タグ
開始タグと終了タグに囲まれた部分が、マークが付けされたテキスト。
木構造を補う方法として、ハイパーテキストと呼ばれる方法を使うことがある。
ハイパーテキスト(hypertext)とは、内部に他のテキストへの「参照
(reference)」が埋め込まれているテキスト(文書、文字だけから構成される
データ)である。ハイパーテキストという仕組みを使えば、テキストのある部
分から、関連している情報を含んでいるテキストのある部分を引き出すことが
簡単になる。
ハイパーテキストを拡張し、テキスト・データだけでなく、音声や画像などの
データを扱えるようにしたものを、ハイパーメディア(hypermedia)という。
World Wide Web は、(木構造ではなく)ハイパーメディアに基づいて
作られている情報提示のための仕組みである。
ハイパーリンク(アンカ)
HTML で、ハイパーリンクの始点と終点をアンカ
アンカ(anchor)
という。
ハイパーリンクの始点は、リンクの頭(head)、終点は、リンクの尾(tail)とも
いうこともある。(HTMLの解説書の中には、始点をリンク、終点をアンカと呼
んでいるものもある。)
ハイパーリンクの例:
<A HREF="http://www.tsukuba.ac.jp/index.html">Univ. of Tsukuba </A>
- ハイパーリンクの始点
- 「
Univ. of Tsukuba
」というテキスト
- ハイパーリンクの終点
-
http://www.tsukuba.ac.jp/index.html
で表わされた資源(ファ
イル)全体
終点は、<A>
タグ中のHREF
(Hyper REFerence) という属性によって指定されてる。
URL (Uniform Resource Locator) の意味
例:http://www.ntt.co.jp/SQUARE/index-j.html
-
http
- HyperText Transfer Protocol。WWWのデータを保持しているプログラム
と、WWWを表示するプログラムの間でデータをやり取りするときの形式を定め
た約束。
-
www.ntt.co.jp
- そのデータを持っているコンピュータの名前。
-
/SQUARE/index-j.html
- そのコンピュータの中での資源の名前(ファイルの名前)。最後の
.html
は、その資源がHTML で書かれている事を表わしている。
URL には、2つの木構造の表記方法が混じっている。
- 木の根が左(ファイル名)
- 木の根が右(コンピュータの名前)
↑[もどる]
←[10月24日]
・[10月31日]
→[11月7日]
Last updated: 2000/11/06 23:55:12
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>