宿題:特徴と分類#
Homework 約30分 答え
次のC言語プログラムを等価なRAマシンプログラムにコンパイルせよ.各変数(ansやx等)とRAマシン上のメモリセル番号(1や2等)の対応は自由に決めて良い.
以下の書式をコピーして回答せよ.
Answer
Q&A#
誤字#
- 命令
形型 が採用するRAマシンなど~ - ~パラダイムと
読んでいる呼んでいる . 
thx
Q. 解答の正しさを確認する方法は?RAマシンへのコンパイル方法は?#
確認方法はありません.RAマシンは理論的なモデルなので実際のコンパイラがありません.load store 等の命令コードも仮想のものです.頭の中でシミュレートしてください.あえて言えば,ブラウザで動くCコンパイラ等で試すと良いです.
Q. RAマシンを聞きながら1年後期のCASL IIを思い出した#
CASL IIの計算モデルはRAマシンです.前回講義の後半で述べていたRAマシンプログラムは,CASL IIのおさらいのような内容でした.
スマホやPCを含め,現代のほぼ全てのコンピュータはノイマン型です.RAマシンはノイマン型コンピュータを抽象化した計算モデルなので,スマホやPCはRAマシンの一種だと言えます.
「RAマシン=コンピュータの核のみを取り出した概念・モデル」だと考えるとよいです.
Q. RAマシンの説明はもっと簡単でもよいかも#
初回なので復習がてらのゆるい話が良いと考えてます.ただ,「RAマシン ≒ CASL II」という話は伝えるべきかもしれない.
Q. ノイマンの名言は「俺より」ではなく「俺の次に」賢いやつができた,だったと思う#
そのとおりです.ただ,実際にノイマンが言ったという証拠はないらしいです.
Q. 宿題を複数回投稿してよいか?#
よいです.最新の解答を採用します.講義の概要#宿題に追記しておきます.
Q. 昼の後なので眠くなる#
工夫されたし.可能な限り協力するので.
Q. フォントサイズは250%か?300%か?(アンケート)#
回答はほぼ半々くらいでした.250%で進めます.見にくい場合はZoomを使ってください.
Q. 「C言語のポインタは間接アドレス指定にあたる」という説明がよくわからない.直接アドレス指定ではないか?#
以下のC言語プログラムを考えるとよいです.
i =  1; // load #1 → store i (定数指定.load対象の値は単なる定数であり,メモリを参照すらしない)
i =  a; // load  a → store i (直接アドレス指定.load対象のメモリ上の値を「直接的に」指定)
i = *a; // load *a → store i (間接アドレス指定.load対象のメモリ上の値を「間接的に」指定)
Q. 大学院入試はどのくらい勉強すべきなのか?#
研究室の学生に聞いてみました.
TOEICはB3の夏休みから毎日30分くらい勉強して,B3の1月にとりました.情報の問題は4月~6月は隙間時間に院試科目の授業資料を見直して,過去問はみんなと同じように1カ月で20年分くらいを2~3周しました.Q. 言語の抽象度の高さとコンパイル速度に関係はあるのか?#
あります.
- 抽象度の低い概念「円形」を低レベル言語で説明するのは簡単
 - 抽象度の高い概念「大学」を低レベル言語で説明するのは難しい
 
もっといえば高機能な言語ほどコンパイルは大変です.例えば型あり言語の場合,コンパイル時に様々な型チェック(int + charはNG等)を行うのでその速度は遅くなりがちです.
Q. 汎用レジスタの数を増やさない理由は何か?#
遅くなるから.互換性を損なうから.