【コラム/IT】トイ・コンピューター
20.11.05
申し込みはこちら
トイ・コンピューター
ブライアン・カーニハン先生の著書に『教養としてのコンピューターサイエンス講義—今こそ知っておくべき「デジタル世界」の基礎知識』という教科書があります。この本の原題は、Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security といいます。
この教科書は、コンピューターの専門家あるいは専門家になろうとしている人むけではなく、ふつうの生活をおくる人に向けたものです。その趣旨は、あたりまえになって、特に意識もしなくなった、ディジタルコンピューティングとインターネットの世界の、あたりまえの便利さの裏にある、気づかないでいる、脅威(監視社会、プライバシーの侵害など)について考える本です。ものごとの基本的な仕組みを知ることが、便利さを上手く使い、脅威を回避することに繋がるということです。
とはいうものの、そもそもコンピューティングの仕組みというのは、ちょっとしたパズルのようなところがあって、面白いものです。件の教科書にも、コンピューターの頭脳?CPUについて説明するために考えだされた「なんちゃって」おもちゃコンピューターの話しがでてきます。このコンピューターは10個の基本命令を実行する能力と、プログラムやデータを格納するメモリ、それに、計算結果1つだけ格納するアキュムレータで構成されています。基本命令にある算術演算は足し算と引き算だけです。以下のプログラムは、2つの数字を読み込んで、足し算をして、その結果を表示するプログラムです。
GET STORE SUM GET ADD SUM PRINT STOP SUM 0
1. GET — キーボードから読み込んだ数値をアキュムレータにセットする
2. STORE SUM — 現在アキュムレータにある数値をメモリ位置SUMにセットする
3. GET — キーボードから読み込んだ数値をアキュムレータにセットする(もともとあった値は上書きされる)
4. ADD SUM — アキュムレータの値にメモリ位置SUMにある値を足し込む
5. PRINT — アキュムレータの値を表示する
6. STOP — 実行を停止する
7. SUM 0 — プログラム実行まえにメモリのこの位置(SUMという位置)に 0 をセットする
足し算するだけなのにずいぶんな手間ですね。でも、本物のコンピューターはこれを超高速でおこなうので、全然苦にならないのです。さて、ここでパズルです。以下のプログラムはなにを計算しているでしょう。
GET STORE X GET STORE Y TOP IFZERO BOT SUB 1 STORE Y LOAD Z ADD X STORE Z LOAD Y GOTO TOP BOT LOAD Z PRINT STOP X 0 Y 0 Z 0
[カーニハン先生のサイト](https://kernighan.com/toysim.html)にこのプログラムを実行できるシミュレーターがありますのでぜひ動かしてみましょう。
RUNボタンをクリックするとProgram欄に書いたプログラムが実行されます
人には単純な算術式であらわせるものでも、コンピューターには何行もの具体的な命令が必要なのです。逆にコンピューターには具体的な命令列であっても、人間には具体的すぎて、もっと抽象的に表現してもらわないとわかりにくい例ですね。
<お知らせ1>
11月22日(日)来校型&オンライン配信型のオープンキャンパスを開催します。
*来校型 午前の部(10:30~12:30) 申し込みはこちら
10:30~12:00 学部・学科別プログラム
12:00~12:30 個別相談
*オンライン配信型(13:00~14:50) 申し込みはこちら
13:00~ 大学・短期大学概要説明、入試・特待制度説明
13:55~ 面接のポイント講座
14:20~ 学生トーク
<お知らせ2>
WEB上でのオープンキャンパスを開催中ですので是非ご覧ください!
ブログ連続オープンキャンパス(Vol.1~Vol.10)はこちら(New!)
大学のWEBオープンキャンパス特設ページはこちら
総合文化学科のWEBオープンキャンパス特設ページはこちら
図書館司書・ITコース紹介はこちらから
ファッション・造形デザインコース紹介はこちらから
フードマネジメントコース(フード)紹介はこちらから
フードマネジメントコース(製菓)紹介はこちらから
※ ツイッター・インスタグラムもぜひご覧ください!