2年冬季授業の説明から。

「群」
集合と演算の組で、以下の条件をみたすもの。
 1、結合律が成立する。((a+b)+c = a+(b+c) という風に、カッコを付け変えられる事を「結合律が成立する」と言います)
 2、単位元が存在する。(a+0 = 0+a = a 、a*1 = 1*a = aという風に、作用させても変わらない要素の事を「単位元」と言います)
 3、全ての要素に対し、逆元が存在する。(a+(-a) = (-a)+a = 0 という風に、aに作用させると単位元になる要素の事を「aの逆元」と言います)
 例えば、整数の+、整数の−、0を除いた実数の×などが、群です。
 
「環」
集合と演算二種類(例えば、+・× と いう風に)の組で、以下の条件をみたすもの。
 1、+がで、かつ、交換律が成立する。(a+b = b+a という風に、入れ換えられる)
 2、×について、結合律が成立する。
 3、+と×が分配法則を成立する。((a+b)*c = a*c+b*c という風に)
 例えば、整数の+×、行列の+×など。
 
「体」
集合Kが体であるとは、以下の条件が満たされること。
 1、Kはである。
 2、Kから0を除いた集合は、×についてで、かつ、交換律が成立する。
 例えば、実数など。
 
「関係」
例を挙げると、「≦」は「2つの実数の間の関係」。「a は b より おいしい」は「2つの食べ物の間の関係」。「x は y 円である」は「品物と自然数の間の関係」。
 
「束」
下の条件を満たす関係が定義された集合のこと。
半順序・上限・下限の説明は、以下の通り。(関係の記号は「R」を用いる)
言葉定義例(集合は実数。関係は≦。)
半順序反射律・対称律・推移律を満たす 
反射律xRxが成り立つx≦xが成り立つ
対称律xRyかつyRxならば、xとyは等しいx≦yかつy≦xならば、x=y
推移律xRyかつyRzならば、xRzx≦yかつy≦zならば、x≦z
上界部分集合Xについて「x∈XならばxRa」が成り立つようなaのこと。存在しない場合もある部分集合Xを考えた時、Xに含まれるどんな数よりも大きい数のこと。Xが「0≦x」だったりしたら、上界は存在しない。
上限部分集合Xの上界のうち最小のもの。「最小」が定義できない場合もある部分集合Xの上界のうち最小のもの。Xが「0≦x≦1」だったりしたら、上限は存在しない。
下界上界の反対。 
下限上限の反対。 
 
「グラフ」
点と線からできているもの全体を指す言葉。三角形や立方体(の点と辺)などが含まれる。
いわゆる「棒グラフ」とか「円グラフ」とかとは関係がないので注意。
 
「正則言語」
「どれだけ表現能力があるか?」で言語を分類するときの1つのグループ。有限オートマトンで受理される文字列の集合。
たとえば、「2進数の偶数」は正則言語。(右下の図参照)
 
「有限オートマトン」
[有限オートマトンの例] 少々乱暴な例え方をすると、「(一人でやる)ボードゲーム」。
スタート地点は一ヶ所しかないけど、ゴールは何ヶ所かある場合もある。
マス毎に「*の目が出たらこっち、#の目が出たらそっちへ進む」と決まっている。
そして、出した目を順番に記録しておく(文字列、と呼ぶ)。
「最後にゴールへ着いている文字列」のことを「受理される言語」
「最後にゴールではない所で終る文字列」のことを「受理されない言語」という。
例えば、図の有限オートマトンでは、受理される言語は「0で終る文字列」、受理されない言語は「1で終る文字列」
 
「文脈自由言語」
言葉同士の関係が木構造で表現できる言語。
例えば正則言語は、文脈自由言語の中に含まれます。
人間が使う「自然言語」は文脈自由言語なのではないか、と言われている。
 
「木」
乱暴な例えをすると「単為生殖(親が一人しかいない)の家系図」みたいなものを指す概念です。
一番の祖先に当たる部分のことを「根(root)」といいます。
一番の子孫に当たる部分のことを「葉(leaf)」といいます。
「木の逆さまに見える」ので、この名前がつきました。
ループの無いグラフである、という言い方もできます。
情報科学の世界では、この「木」を使ったモデルは非常に重要なので、ただ単に「木」と言った時は誰も「(植物の)樹」を思い浮かべません。
 
「チューリング機械」「TM」
Turing Machine。チューリングさんが考えた、記録テープとそれをある規則に従って読み書きするヘッダからなる抽象的な(つまり実在はしない)機械。
単純かつコンピュータの基本的な性質を持つので、理論を考えるときに便利。
 
「チューリング機械の停止性問題」
チューリング機械は空想上の機械だから、どんな問題でも解いてくれるのかと言うと 実はそうではなくて、ある種類の問題を与えると、チューリング機械は紙テープを読んだり書いたりしながら考え続け、永遠に答を書いてくれなくなることがあるのだ……。
(しかも、後少しで答を書いてくれるのか、永遠に書いてくれないのかが、分からない……)
 
「逐次計算機」
プログラムを、メモリから1つずつ取り出して1つずつ実行するコンピュータ。 フォン・ノイマンさんが考えたので、フォン・ノイマン型計算機、とも言います。 現在では、ほぼ全てのコンピュータがこのタイプです。
 
「機械語」
コンピュータが理解できる言語。マシンコードとも言う。
0と1しか文字がないので、人間が理解するのは至難の技です。でも人間が書いたプログラムは全て最後には機械語に直されないといけません。
 
「入出力」
キーボードから入力したり、ディスプレイに出力したりすること。
入出力は計算より速度が遅いので、いくつも入出力をしたいときには「順番待ち」の問題がでてきます。
順番獲得のための方針は、ポーリング(ずっと見張ってる!)と割り込み(出来るようになったら呼んで♪)の2通り。
 
「割り込み」
与えられた仕事をコツコツやっているコンピュータに「ちょっと待って、先にこれだけやって」と、頼むこと。
その時には、後で「どこまでやったんだったっけ?」という事にならないよう、 今何をしているのかちゃんとメモさせておくことが大事。
 
「アセンブリ言語」
コンピュータは0と1しか理解できないが、人間は0と1だけでは理解しにくい。
だから、例えばコンピュータは「0000 は足し算」「0001 は引き算」という具合に理解するので、「add → 0000」「sub → 0001」という変換をするソフトウェア(アセンブラ)を用意すれば人間は「add」「sub」と指示すればいいことになって楽ちん。この人間用の言語がアセンブリ言語。
 
「リスト」
順番に書き並べたもの。
単純そうに見えるけど「コンピュータ上で どうやって実現しようか」と考えると
・メモリに並べて書いただけのものは、中に挿入するのが大変
・「次はあそこ」という指示をつけたものは、一つずつしかたどれないので真ん中を見つけることなどが苦手
とか こんなことでも実は結構単純でない。
 
「二分木」
のうち、一人の親が子どもを2人までしか持たないもの。
 
「ソート」
並べ変えること。
こんな簡単なことでも、効率のいい方法と悪い方法がある、というのをうちの学科に進学すると最初に習うでしょう。(^^)

3年夏季授業の説明から。

「離散」
とびとびであること。「連続」の反対語。
例えば「可能な数値」とかを考える時に 0≦x≦10(区間)なら連続的だけど{0, 1, 2, ..., 10}(集合)なら離散的、とかそういう感じ。
 
「最適化」
最も適した状態にすること。「どこそこへ行くのに、最も近い道を選ぶ」など。
ちなみに最適化するというのは基本的にかなり大変なことなんです。
 
「コンパイラ」
人間が理解できる「プログラミング言語」を、コンピュータが理解できる「機械語」またはそれに近い言語に直すもの。
当然「賢いコンパイラ」と「賢くないコンパイラ」があります。(^^;
 
「プログラミング言語」
コンピュータに命令する時に人間が使う言葉。C、C++、Pascal、Java、Basicなんかが有名どころでしょう。
実はコンピュータはこのプログラム言語というものを(たいてい)直接理解できないので、「コンパイラ」などの翻訳器が必要になります。
 
「ASIC」
Application Specific Integrated Circuit、つまり特定用途向けIC、つまり汎用ではなく特定のことに使うために、使う人が作っちゃう特注のICのこと。
プロセッサ実験(プロセッサ実験のページ)で作るCPUも見ようによっては……。(^^;
 
「論理回路」
論理と言えばAND(かつ)、OR(または)、NOT(否定)など。それらの働きを電子回路で作ったもの。
 
「ブール代数」
AND、OR、NOT、IF〜THENなどの論理演算を扱い、数学を論理学に応用しようとしたもの。
 
「カウンタ」
ここでは、いくつかのラッチ(0/1の状態を保存しておけるような電子部品)が適当に0になったり1になったりを繰り返して、一定の周期で元の状態になるもの。
こう書くとややこしいですが、まあ ビデオデッキのテープカウンターなどと 気分は変わりません。
 
「演算回路」
演算の働きを電子回路で作ったもの。加算器とか減算器とか、様々な種類があります。
この辺が速いとコンピュータの計算が速くなることになるので、各演算に色々な方式が考えられていたりします。
 
「順序回路」
自分の状態を保持しておくことのできる回路で、ある時刻の状態が次の時刻の状態に影響を与える仕組みになっている回路。
カウンタも順序回路の一種です。
 
「HDL」
Hardware Description Language。ハードウェア(電子回路)を設計するときに、「入力が0になったら1を出力して、入力が1になったら……」という感じに指定するための言語。つまり、電子部品が実際どう組み合わさるか考えずにソフトウェアのプログラミング的にハードを設計できるという、うれしい言語。
 
「ノイズ・イミュニティ」
雑音免疫。ノイズが入ったりしても回路がきちんと動けること。
 
「EMI対策」
???
 
「論理演算子」
AND、OR、NAND(NOT-AND)などの論理演算の働きをする回路。
 
「加算器」
足し算器。比較的単純かつ重要な回路なので、たいてい一番最初に作り方を習います。(^^)
 
「命題論理」
「僕は人間です」などの命題を1つの記号(Pとか)で表した上で色々考える論理系。構文論(式変形だけして考えていこう)とか意味論(やっぱりどんな意味の命題だったかを考えないと)とかの上で恒真式だの証明の仕方だのを考えます。
 
「一階述語論理」
「xは人間です」のように変数(ここではx)に具体的なものを入れると正しいかどうかが決まるものを述語と言います。この述語を使った論理が述語論理。
一階とは、変数として個体(名詞)しかとれないということ。述語とかが変数になれるときは高階と言います。
 
「証明手続き」
命題に矛盾があるかどうか探す方法。
色々な種類があり、どのような命題に対して使うことができるか/時間がどのくらいかかるか、などが異なる。
 
「駒場の「記号論理学」」
例えば駒場の教養過程の、いわゆる「シミ論」(清水教官担当の記号論理学)とか。情報科学科に進学する上で要望科目になっているはずですが、実際この辺のことを知らずに進学してくるとちょっとつらい?かも?
 
「ゲーデル不完全性定理」
自然数の基本的な性質を記述できるような論理体系Kを考えた時、Kで証明できる自然数に関する論理式がすべて正しい論理式であるなら、自然数に関する正しい論理式でKでは証明できないものが存在する、という定理。
論理にとっての壁、というやつですかね。
 
「オペレーティングシステム」「OS」
「基本ソフト」とも呼ばれる。計算機を効率良く・便利に使えるように基本的なことを処理してくれるソフト。
有名どころではWindowsとかMacOSとか。
 
「プロセス」
プログラムの制御のもとでプロセッサで行なわれる一連の動作。一言で言えば「実行中の」プログラム。
OSによる制御の単位となります。
 
「プロセス間の同期・通信」
いくつかのプロセスが1つの仕事を分業しているときに、必要に応じて順番待ちをしたり(同期)、情報交換をする(通信)こと。
 
「仮想記憶」
実物の記憶領域(メモリ)は小さいんだけど、補助記憶(ハードディスクとか)を持ち出して巨大な記憶領域があるかのように見せかけるシステム。
大きいプログラムを動かしたい時とかに重要です。
 
「セキュリティ」
コンピュータは外部からの様々な不法アクセスから守る必要があります。
そのコンピュータの防御システムの事をコンピュータのセキュリティと呼びます。
 
「計算機アーキテクチャ」
計算機の構造または規則についての方式や設計思想のこと。
実は一般的な定義がない言葉らしい。(^^;
 
「システムソフトウェア」
計算機システムを使いやすいように、始めから用意してある基本的なプログラムのこと。OSコンパイラデータベース管理システム、エディターなど。
 
「エディター」
文章や画像を、書いたり消したり編集したりするのに使うソフト。
UNIXのMuleや、Windowsのメモ帳など。

3年冬季授業の説明から。

「人工知能」
人間の学習機能や判断機能の一部または全部を計算機に持たせたもの。いわゆるAI。究極的には計算機で人間の脳の機能を機械で実現する事を目標としている。
 
「認知科学」
人間、生物系の知的な働き(特に記憶や思考)を、そこで使われる知識の性質や構成、利用などの面から解明しようとする学問分野。
いわゆる学際的な分野で、哲学や言語学、心理学が絡みます。
 
「自然言語処理」
コンピュータに、英語や日本語など、人間が使っている言語を理解させること。
この機能を応用すると自動翻訳器とか自動要約生成器とかが作れます。
 
「バグ」「デバッグ」
虫。コンピュータの世界では、プログラム中の間違ったところを指す。これを直すことを「デバッグ」、「バグ取り」、「虫取り」などと言う。
バグが怖くてプログラムが組めるか〜っ!
 
「プログラムの意味論」
無限ループをプログラムの実行の前に見つけることなどを目指している。
プログラムをただ字面で扱うのではなく、「つまり何やってるの?」というところにまで踏み込んで調べることになります。
 
「型推論」
プログラムを実行する前に、おかしな使われ方をしている変数を見つけたりする。
「x=1、y=”あいうえお”、z=x+y」とかされると困るのでこういうのを先に見つけてダメって言っちゃえ、という発想。
 
「λ計算」
関数を抽象化したλ式を使って計算の過程を表現したもの。例えば2乗を求める関数はλx.x×x、3倍を求める関数はλx.x×3 と表現されます。
計算の等価性とかを考えるのに便利。また、ある条件のもとでλ式で書ける関数はコンピュータで解ける関数と一致します。
 
「計算量」
ある計算をするときに必要な時間や記憶領域の量のこと。最悪のときの計算量とか、平均的な計算量とかが重要です。
 
「ナップザック問題」
荷物をどのように詰め込めばナップザックに入るかを調べる、有名な問題。全通りの詰め方を試すのではいくらなんでも時間がかかり過ぎるので、もっと速い方法がないか色々研究されている。
 
「NP完全」
ぶっちゃけて言うと、解くのにやたら手間のかかる問題であるということ。(ただし上には上がいるのですが……。)
例えば、あるグラフのすべての点を1回ずつ通って元に戻るような道があるのか?とか。
 
「近似アルゴリズム」
厳密に正しい解じゃなくて、近似解が求まればいいや、というアルゴリズム。厳密な解を求めるのにやたら手間がかかる時によく使われる。
 
「パイプライン」
プロセッサが仕事をする時に、「(1)次の仕事を調べる。(2)必要なものを揃える。(3)仕事をする。……」という一連の作業を一まとめにやらずに分業してしまうこと。
うまく分業できればその分仕事が速くなるが、うまく分業するのがちょっとややこしい。
 
「キャッシュメモリ」
頻繁に使われるデータを貯めておくためのメモリ。動作が速いので、同じデータを何度も使うときは全体の実行も速くなる。
実際、同じデータを何度も使うということは結構多い。
 
「投機的実行」
投機的とは「危険を覚悟で大きな利益を得ようとするさま」のこと。つまり投機的実行とは、前の仕事の結果が確定していないのに「きっとこれでいいんだよ〜違うかもしれないけど〜」と言いながらガンガン実行してしまうこと。
次に何を実行すればいいかの予測が高精度でできるならば、非常に強力な高速化。
 
「数値計算」
コンピュータに「数値の計算」をさせること。 大規模な計算、精度の高い計算をする際に、CPUの計算能力の様々な制約・限界を、ソフトウェアで補完してやるための技術などを研究する分野を「数値計算」と呼びます。
情報科学の世界では、「計算→数値」ではなくて、問題を解くこと一般を「計算」というのです。
 
「アルゴリズム」
ある問題を解くための手順または進行過程。ただし「無限に」時間がかかるものはダメ。一億年後でもいいから結果が必ず出ないといけません。

4年夏季授業の説明から。

「データベース」
たくさんあるデータを扱いやすいようにまとめたもの。
まとめるというのがクセモノで、「欲しいデータを探しやすいように」「データを書き換えやすいように」とか考えると色々難しい。
 
「問合せ言語」
データベースの検索に使われる言語。
 
「オブジェクト指向」
扱いたい一連のデータとそのデータを扱うための手続きを一まとめにしたものをオブジェクトと言います。オブジェクト指向とはオブジェクトの手法でもって物事を扱おうということ。
 
「ゲノム」
ある特定の生物の設計図として必要な遺伝子(DNA、染色体)の1セットのこと。実際には各個体は両親から1ゲノムずつもらって、計2ゲノム持っています。
 
「トランザクション」
ある共有されたデータベースへの読み出し、書き込み操作の1つのまとまりのこと。複数のプログラムが同時に同じデータを操作しようとしたときどうするか、とかを考えるときのキー。
 
「関係データベース」
データを表の形にまとめているデータベース。例えば名簿とか。
 
「正規化」
例えばサークルの名簿に学部学科とどこのキャンパスかが書いてある時に、どこそこの学科が柏に引っ越した!とかなると名簿の書き換えが面倒。それだったら名簿その1に人名と学部学科、名簿その2に学部学科とキャンパスを書けばいいじゃん、というのが正規化。
 
「演繹データベース」
関係データベース人工知能を融合しようという試みの中から生まれたデータベースシステム。最近は、これとオブジェクト指向データベースを融合し、演繹オブジェクト指向データベースを作る、という研究も行なわれている。
 
「幾何モデル」
CGで、対象とする物体の形状をデータ化すたもの。
 
「陰影付けモデル」
CGで、面上のある点から目に入る光の色や明るさを決めることを陰影付けと言い、その時に仮定する光の性質を陰影付けモデルと言います。
 
「動画」
動いてる絵 (^^;。つまり、静止画→写真、動画→ビデオ、です。
 
「分散」
物理的、地理的に離れているものを、1つのシステムとしてまとめて使うということ。分業の一種。
 
「並列」
1つの問題を解くために、複数のプロセッサまたはコンピュータを同時に協調させて使うこと。一種の分業だからうまくいけばそれだけ速く問題が解けます。
 
「マッチング」
対応させること。
 
「乱数」
規則性なく、何度試してもバラバラの値が返ってくるとき、その値の連なり。要するにサイコロ。
 
「素数判定」
与えられた数が素数かどうか調べるのが「素数判定問題」。 色んな数で割ってみれば、素数かどうか分かるのだが、それでは時間がかかり過ぎるので様々な方法が研究されている。
 
「パターンマッチング」
標準のパターンと与えられたパターンがどれだけ似ているかで、与えられたパターンがどんなものかを調べるという方法。
画像認識とかで使われる。
 
「畳み込み」
別名、逆展開。プログラムの変換操作の一つで、例えばプログラムがf(x,y)=x+1+yでg(x,z)=x+zのとき、プログラムをf(x,y)=g(x,1)+yと書き換えること。
 
「サーバ/クライアントシステム」
実際の仕事をするコンピュータ(サーバ)と仕事やって♪と頼む(だけ)のコンピュータ(クライアント)があるシステム。分散システムの一種。
 
「LAN」
Local Area Network の略。 同じ建物や敷地内で、コンピュータを高速なネットワークでつなぐ仕組み。
場所が限定されている分、高速でセキュリティの心配が少ないのが特徴。
 
「関数型言語」
数学のf(x)、g(x)といった関数と同じような形式で書かれるプログラミング言語。CやPascalとはかなりプログラムの見ためも違うし、得意なことも違います。
具体例としてはSchemeなど。
 
「並列言語」
並列に処理を行なわせることを念頭において考えられたプログラミング言語。並列処理をさせやすくするための機能が強化されている。
 
「型システム」
型の体系。
 
「ユーザインタフェース」
システムやプログラムのユーザ(利用者)のための操作版や窓口に当たるもの。例えば、銀行における自動引落機(のお客様に見える部分)。
これをうまく作らないと利用者からブーイングの嵐を受けることになる。
 
「リアルタイムシステム」
現実世界が刻々と変化していくのに合わせて働けるようなコンピュータのシステム。例えば車のエンジンを、回転数を監視しつつ自動制御する、とか。
 
「細線処理」
例えば郵便番号の自動認知などで、ぶっとく書かれた「1」から細い「縦棒」の要素を取り出す、とか。
 
「2値化」
カラーや白黒グラデーションの画像を、完全に「白点」と「黒点」だけからなる画像に変換すること。
どうやって白黒に分けるかが面倒。
 
「オプティカルフロー」
観察の対象物が動いたり観察者が移動したりしたために生じる、観察者の網膜に映った像(光点)の移動(流れ)。
 
「CRT」
cathode-ray tube。いわゆるブラウン管で、普通の(液晶じゃない)テレビやディスプレイで使われている。
 
「バーチャルリアリティ」
「本物ではないんだけど、まるで本物みたいな」環境を体験し、そこで行動することを目指す技術。
 
「ヒトゲノム研究」
人の全ての遺伝子情報を解析し、医学の発展に役立てる!という目標をかかげたヒトゲノム計画というものがあります。
膨大な遺伝子情報の中から必要な情報だけを取り出すのに、情報科学の力も必要とされています。
 
「バイオコンピューティング」
タンパク質などの生体特有の機能を使ったバイオ素子で計算すること。
 
「PAC学習」
probably approximately correct learning。統計・確率の観点で帰納的推論や学習を定式化したもの。
 
「分子動力学法」
系を構成する個々の粒子に対して Newtonの運動方程式を適用し、積分をして粒子の動きをシミュレートする、という方法。
人間が積分していたら 日が暮れてしまうので、もちろんコンピュータに計算させる。
 
「モンテカルロ法」
アルゴリズムに「確率」を利用する方法。
モンテカルロ法用の説明図 例えば、面積を求めるなら
1、ランダムにミサイルを落す
2、どの位の割合で、斜線部分に当たったか調べる
という手順で、斜線部分の面積を求める方法。
ミサイルを沢山落すほど、精度が増える。「ランダムに」という所がミソ。
 
「ファジィ」
言葉の定義があいまいなせいであいまいになってしまってること、を扱うための手法。
例えば「中年」って言っても具体的に何才なんだ?みたいな。
 
「ニューロ」
ここでは、生体の神経の仕組みをまねたもの。
 
「GA」
遺伝的アルゴリズム。生物の進化における遺伝子のふるまいをまねしたアルゴリズム。
別に人工生命や人工知能を作ろうとしているのではなくて、仕組みの部分が役に立ちそうだからまねしてるだけです。
 
「ニューラルネットワーク」
ここでは、生体の神経ネットワークの仕組みをまねたもの。
 
「カオス」
混沌。数学的には微分方程式とかで きちっと決めた解が予測不能な不規則な振舞いをすること。
 
「複雑系」
要素がたくさん集まって出来たひとつのシステムで、要素が集まることで新しい性質や能力が生まれるもの。
例えば、脳細胞はひとつだけでは考える力を持たないが、集まることで思考する能力を持つようになる。
 
「VLSI」
Very Large Scale Integration。超大規模集積回路。つまり、ICの進化してパワーアップしたもの。
 
「デバイス」
CPUとは区別される1つのまとまった電気的、機械的な処理装置。ハードディスクとか。
 
「システム・オン・チップ」
???
 
「CAD」
Computer Aided Design。コンピュータを利用して楽にデザイン・設計をすることや、そのためのシステム。
プロセッサ実験(プロセッサ実験のページ)においては「CADを引く」と言えば「CADを使ってプロセッサを設計する」こと。

4年冬季授業の説明から。

「モデリング」
対象としている問題の本質的なところだけ、扱いやすいように抜き出したり抽象化したりすること。その結果がモデル。
いいモデルは思考、処理を助けるし、そうでないモデルは足を引っ張ります。(^^;
 
「論理プログラミング」
命題論理や述語論理の考え方を使ったプログラミング。CやC++とも関数型言語ともまた違ってきます。
 
「並行(論理プログラミング)」
複数の処理を計算機の中で同時に扱うこと。計算機の中で遊んでる部分を減らしたり、1つの処理にかかる時間の不公平さを減らしたりできる。
 
「デフォルト」
「特に何も無ければ、〜〜」という暗黙の仮定のこと。
例えば「明日、学校へ行く」というのは 論理学的には正確ではなくて
「明日、『朝突然おなかが痛くならなくて、交差点で車にはねられなくて、電車が止まらなくて、……』なら、学校へ行く」と言わないと、正確ではありません。
でも、そんなの とてもやってられないから、デフォルトの概念を使って省略しているのです。
 

プロセッサ実験から。

「完動」
プロセッサ実験において、全ての作業が完成し、課題である「レイトレーシングで画像を表示させる」ことが出来たこと。
「完全動作」の省略……?
 
「3Dグラフィック」
主にコンピュータを利用して作られる立体的な画像のことです。
ゲームでおなじみの「ポリゴン」は3Dグラフィックの手法の一つです。
きれいな画像を作ることが出来る分、一般に手間がかかります。
 
「水晶」
一般にはクロックと呼ばれるもので、一定周波数の信号を出してくれます。
プロセッサ実験では RS232C転送レートのためのクロックと RS232C IC を動かすためのクロックとCPUである Xilinx のためのクロックが必要となります。
実行速度をあげるためにはCPUのクロックをあげてやればよいのです。
 
「RAMリーダー」
最初にCPUを動かすためにはプログラムを読み込むためのプログラムが必要で、そのプログラムを ROM(read only memory)に書き込んでおきます。つまり、機械が立ちあがるとROMを読み込みにいき、ROMにかかれているブーティング(立ち上げ)プログラムを実行します。
それで、そのROMにはRAMへのデータ読み込みプログラムが書かれていて、RAM(random access memory)へプログラム(レイトレのプログラム)が転送された後、RAMのプログラムを実行します。
そのためにはROMを焼かないといけないのですが、実験では それが面倒なのでRAM へプログラムを直接書き込む装置をCADで作ってやる、ということをする班もありました。このRAM reader writer はデバッグにも使えて大変便利です。
 
「手押しクロック」
CPUのデバッグをする時、おかしいことがいつ起こったのかわからない、とい うことがよくあります。その確認をするために、手で1クロックずつ送れる、 ということができたら大変便利です。
そこで、ボタンと回路を作って、ボタン を一回押すと1クロック送る、という機械をほとんどの班がつくっていました。
 
「プロセッサ」
計算機の中の計算をする本体。
プロセッサ実験における「プロセッサ」とは、いわゆるCPUの事を指しています。
 
「CPU」
CPU:Central Processing Unit:中央演算処理装置。
コンピュータの頭脳と呼ばれる部分です。コンピュータを使っていると、文字・ 画像・動画・音声、などさまざまな情報を処理してくれているようですが、 実際に行っているのは、数を足したり引いたり、掛けたり割ったりという、 地味な作業です。ただし、それらをとんでもなく速く処理できるところに コンピュータの存在理由があるのです。
 
「同期式回路」
一定間隔の信号(クロック)に合わせて全体が動く回路を同期式回路といいます。
例えば、ダンスは同期式です。全員が同じリズムに合わせて踊っているからです。
 
「非同期式回路」
ドミノ倒しや大玉転がしを想像して下さい。
ドミノや人間は、信号に合わせて動いているのではなく、自分の前のドミノが倒れたら/自分の前の人が大玉にふれたら、自分も動き出しています。
このように、自分の前後の状態を見て動く回路を非同期式回路といいます。
 
「レジスタ」
私たちが暗算(たとえば 5×23)を行うとき、オペランド (5と23)を一瞬頭の中に覚えているはずです。同様に、 CPUが演算(たとえば 1+2)を行うときも、そのオペランド(1と2)はレジスタになければなりません。このような短期的な記憶場所のことをレジスタといいます。
 
「ALU(Arithmetic Logical Unit : 算術論理演算器)」
名前のとおり、足し算、引き算、論理積などさまざまな演算を担当します。一般にCPUという言葉でイメージされるのは、ALUの機能ではないでしょうか。
 
「プログラムカウンタ」
「今現在CPUはプログラムの中の何番目の命令を実行しているか」という情報を 持っているところです。たとえば、
  1. 卒業生入場
  2. 校歌斉唱
  3. 祝辞
  4. 送辞
  5. 答辞
  6. 卒業生退場
というプログラムがあって、だらだらと長い送辞を聞いているときは、プログラムカウンタは 「4」という数字を持っていることになります。
(卒業式のプログラムのはずなのに「卒業証書授与」がない・・・。)
 
「ハーフアダー・フルアダー」
アダーとは足し算のこと。2進1桁の数(0又は1)を二つ受けとって、足したものを求めます。
なぜ「ハーフ」かというと、下の桁からの繰り上がりを考えていないからです。 これに対して、
X + Y + C0 = S + C1
のように繰り上がりを考えた足し算のことをフルアダーといいます。 ハーフアダーとフルアダーを並べると、2進数の足し算をできるようになります。ALUの中に使われています。
 
「論理積」「and」
入力信号が全て1のとき、1を出力する演算子です。 入力の数が2のときの表は以下のとおりです。
A and B = C
A B C
0 0 0
0 1 0
1 0 0
1 1 1
 
「排他的論理和」「xor」
奇数本の入力信号が1のとき、1を出力する演算子です。 入力の数が2のときの表は以下のとおりです。
A xor B = C
A B C
0 0 0
0 1 1
1 0 1
1 1 0
 
「クロック」
振動子が発する一定間隔の信号のこと。拍子だと思いねぇ。
パソコン雑誌を見ると「celeron 300MHz」などと載っている。 celeron はCPUの名前で、300MHzがクロックの周波数です。一秒間に3億回。 速いねー。まあしかし、プロセッサ実験(プロセッサ実験のページへ)で作るCPUはせいぜい十数メガヘルツが限度でしょう。
 
「基板」
CPUやメモリを乗せる、土台となるもの。
 
「浮動小数点ライブラリ」
「浮動小数点」は、「小数をコンピュータの中で表現する時の方法の一つ」です。 「ライブラリ」は、「よく使う便利なプログラムの部品の集まり」です。 従って「浮動小数点ライブラリ」は「小数の計算をする、プログラムの部品の集まり」です。
 
「レイトレーシング」
「レイ・トレーシング(ray tracing)」。日本語でいうと「光線追跡法」になります。
CG(computer graphics)の技法の一つです。
詳しい説明は、プロセッサ実験のページの「レイトレーシングの説明」へ。
 
「論理演算」
記号論理学でやる「AND」とか「OR」のこと。
 
「Rotate」
例えば、"1234" を "2341" とするように、数字の列を循環させること。
 
「Shift」
例えば、"1234" を "2340" とか "123" とするように、桁をずらすこと。
 

参考:
マイクロコンピュータ辞典
C.J.Sippl著;岡本茂、松山泰男、大島邦夫訳;共立出版
岩波情報科学辞典
岩波書店
共立総合コンピュータ辞典
山下英男監修;日本ユニバック総合研究所編;共立出版
認知科学ハンドブック
安西祐一郎、石崎俊、大津由紀雄、波多野誼余夫、溝口文雄編;共立出版
新版情報処理ハンドブック
情報処理学会編;オーム社
岩波数学辞典 第2版
日本数学会編;岩波書店
諸先輩方に貸していただいた授業のレジュメ

〔トップページへ〕|〔move to top page〕


<vu@is.s.u-tokyo.ac.jp>
Last updated on 30 May., 1999