コンピュータ言語

共通科目情報処理(講義)、生物資源学類対象、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/

■復習

■今日の重要な話

■インターネットの技術(補足)

◆WWW Proxyとキャッシュ

◆WWW ブラウザ

WWW ブラウザは、WWW でのクライアントに相当する。 WWW サーバから、データを取り寄せ、表示する。

WWW ブラウザは、基本的には、直接WWWサーバに要求を送る。 WWW サーバ (httpd)は、普通は、ファイルからデータを読み出し、WWWブラウザに返す (図の(1))。

クライアント、Proxy、WWWサーバ、キャッシュ

図? CGIの仕組み

設定によっては、WWW ブラウザは、直接 WWW サーバに要求を送らずに、 WWW Proxy サーバ に要求を送ることがある(図の(2))。

proxy ( プロキシプロクシ ) とは、「代理」という意味。 WWW Proxy は、 WWW ブラウザに代わって、WWW サーバと通信をするプログラ ム。

WWW Proxy は、WWWブラウザから受け取った要求を、WWW サーバに送ります。 WWW サーバから送られた結果は、WWWブラウザに返す。

WWW Proxy の利用目的

◆キャッシングの意味

空間と時間の交換 得をするのは、同じデータをもう一度使う時だけ。 同じデータを1度しか読まないなら、キャッシングをすると、ディスクに書き 込んだり、余計な中継のオーバーヘッドがあるので、時間的にも損になる。

データ圧縮は、空間的に得をするために、計算時間を犠牲にする。 ただし、通信時間の節約になるので、全体の時間は得をすることもある。

◆ブラウザによるキャッシング

キャッシングは、ブラウザのメモリやブラウザが動いているホストのディスク (ファイル)に行なわれることがある。 この場合、WWWブラウザは、WWWサーバに要求を送る前に、まず、メモリやファ イルに保存されていないかをチェックし、あれば、それを使う。

メモリ中のキャッシングは、かなり効くので、普通は使うとよい。

ディスク(ファイル)へのキャッシングは、電話回線のような遅い回線を使っ ている時には、効きくことがあるが、イーサネットのような速い回線に繋がっ ている時には、効かないことが多い。

気が付かない間に見えない所でディスク容量を消費して大事なデータが保存で きなくなることがある。

■コンピュータ言語

言語の分類

コンピュータ言語は、コンピュータと人間の両方が「理解」できる「人工言語」。

コンピュータのハードウェア(CPU)が本当に「理解」できるのは、機械語 だけ。コンピュータが「理解」できるために、コンピュータ言語では、 「構文」と「意味」が厳密に決まっている。

コンピュータ言語の種類

コンピュータ言語を学ぶことの意義

■プログラミング言語

プログラミング言語とは、プログラムを書くための人工言語である。人間の思 考の速度ととコンピュータの速度の差を埋めるもの。

さまざまなプログラミング言語

分類

◆プログラミング言語の2つの実行方式

人間が書いたプログラムを、ソース・プログラム(ソース・コード)という。 ソース・プログラムのままでは、コンピュータで実行することができない。 コンピュータが実行可能のは、機械語のプログラムだけ。

2つの実行方式

インタプリタは、プログラムの一種であり、普通は、コンパイラ方式の言語で 書かれていて、機械語に変換された形でコンピュータに蓄えられている。 (インタプリタもまた別のインタプリタで動いていることもある。)

Javaは、中間。

メタレベル・プログラミング。インタプリタの動きを制御する。

C言語は、コンパイラ言語。C言語のコンパイラは、C言語で書かれている。

CPUは、機械語のインタプリタ。

ソースは、資産。2000年10月25日、マイクロソフトから Windows のソース・ プログラムが盗まれた可能性が発覚した。マイクロソフトは、否定している。

オープソ・ンース。ソースは、free (自由に見ることができる、無料)。

◆プログラム言語で考えるとコンピュータはどう見えるか

ハードウェアの話

プログラミング言語は、主に CPU とメモリの動作を制御する。 プログラミング言語からは、ハードディスクは、ファイルとして見える。

プログラミング言語の構成要素と CPU と主記憶の抽象化の関係。

変数。
メモリを抽象化したもの。
代入
メモリ間のコピーを抽象化したもの。
関数(+,−,*,/,<,>,<>,=など)
CPUの計算機能を抽象化したもの。
サブルーチン
よく使われる小さなプログラムの断片。名前がある。 大きなプログラムを小さなサブルーチンの集合として作る。 分担作業をする。再利用。手抜き。
if, for, while
プログラム・カウンタの制御を抽象化したもの。
ファイルの扱い
ファイル操作、永続的なメモリの利用。
プログラム・カウンタ: CPU の中にある、小容量の記憶のための部品(レジ スタ)で、メモリに入っている機械語のプログラムのうち、どこを実行してい るかを示す。

データ型(符号)

普通のプログラミング言語では、そのままでは音や絵の符号は扱えない。

◆Java

Sun Microsystems社によって開発されたオブジェクト指向プログラミング言語。

Java は、WWW(WorldWide Web)のブラウザで動作してブラウザの機能を拡 張することができる。

WWWブラウザの基本的な機能:ユーザが要求した「データ」を 表示する。

Java 対応ブラウザでは、サーバから「プログラム」がブラウザに届き、 それが実される。

Java で出きること(外部の専用のアプリケーションやPlug-inと呼ばれる機能 でもできることも多い。)

◆Java 仮想計算機

Javaのソース・プログラムは、テキスト・エディタ(文字だけを効率的に 打ち込むためのプログラム、mule など)などで記述される。

Java言語で記述されたけソース・プログラムは、Javaコンパイラによ り、Java仮想計算機(Java Virtual Machine)と呼ばれる仮想的なコンピュー タの機械語に変換される。 この機械語は、バイト単位で解釈されることからバイト・コードとも呼ばれる。

Java仮想計算機のの機械語を実行させる方法:

Java のプログラムは、様々なハードウェアやオペレーティング・システムで 動作する。 WWWブラウザには、JavaVM のインタプリタが組み込まれている。

Java アプレットは、Java仮想計算機の機械語によるプログラムと、それ に与えるデータをひとまとまりにしたもの。

■スクリプト言語(マクロ言語)

プログラミング言語は、アプリケーション・プログラム本体の記述に使われる。

これに対して、スクリプト言語とは、アプリケーション本体ではなく、アプリ ケーションの細かな動作を変更したり、アプリケーション本体を変更すること なく機能を追加したりするために使われる言語である。

プログラミング言語

スクリプト言語 スクリプト言語の例 決まりきった作業をコンピュータにやらせるには、スクリプト言語を活用でき るようになりたい。

■マークアップ言語

マークアップ(markup)する:
文書(テキスト)に、「ここは表題」、「ここは箇条書」といった、文書の構 造を示す目印(マーク)を付けること
マークアップ言語(mark-up language)
マークアップのための目印を文書に埋め込むための人工言語
マークアップ言語の種類 マークアップされていないテキストは、 平らなテキスト(plain text)、 ( プレーン・テキスト ) 。

マークアップ言語でマークを付ける時の方法としては、テキストに タグ(tag)(名札の意味) を埋め込む。

日本語におけるマークアップの例:

括弧「」で括れば誰かの発言を意味する。
これは括弧"「" と "」" の間のテキス トに誰かの発言という意味のマークが付けられている

HTML では、「<」 と 「>」で括られた範囲がタグ。

タグの種類

<name> 開始タグ
</name> 終了タグ 開始タグと終了タグに囲まれた部分が、マークが付けされたテキスト。

◆ハイパーテキストとハイパーメディア

木構造を補う方法として、ハイパーテキストと呼ばれる方法を使うことがある。

ハイパーテキスト(hypertext)とは、内部に他のテキストへの「参照 (reference)」が埋め込まれているテキスト(文書、文字だけから構成される データ)である。ハイパーテキストという仕組みを使えば、テキストのある部 分から、関連している情報を含んでいるテキストのある部分を引き出すことが 簡単になる。

ハイパーテキストを拡張し、テキスト・データだけでなく、音声や画像などの データを扱えるようにしたものを、ハイパーメディア(hypermedia)という。 World Wide Web は、(木構造ではなく)ハイパーメディアに基づいて 作られている情報提示のための仕組みである。

インターネットの資源とハイパーメディア></P>
<P><STRONG>インターネットの資源とハイパーメディア</STRONG></P>
</A>



</P><P>

ハイパーリンクを実現するためのマークアップ言語には、次の2つの機能が必
要になる。

<UL>
<LI> データにラベルを付ける(参照の目標となるマークを付ける)。
<LI> データにラベルへの参照を埋め込む。
</UL>

</P><P>

<P><A NAME=ハイパーリンク(アンカ)

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>