忍者ブログ

さて、GREサブジェクトテストCS分野の問題、4問目はコンパイラがらみの問題でございます。



で、「そもそもコンパイラとは何ぞや?」ということからちょっと話し始めると、んーと、「プログラム」って言葉は、PCをいじってれば誰でもたいてい1度は聞いたことがあると思うんだけど(具体的に言えば、文書作成するやつとか、表計算するやつとか、ゲームとか、そういうのね)、このプログラムってやつは「プログラミング言語」って言葉(たとえば、C言語とかJavaとかLispとかね)で書かれてる。でも、このプログラミング言語、人間には分かりやすいんだけど、機械、つまりコンピュータにはとんと理解できない代物なんだよね。つーのも、突き詰めれば、コンピュータが理解できるのは、1か0か、つまり、電流が通ってるか通ってないかということしか分からないから。

そこで、プログラミング言語を「コンピュータにやさしい」かたち(これを「機械語」と言ったりする)に直す必要があるんだけど、その役目を担うのが「コンパイラ」というわけ。



コンパイラというのは、プログラミング言語(これをソースプログラムと言ったりする)を分析する「フロントエンド」という部分と、そのフロントエンドで分析された結果を統合して機械語(これをターゲットプログラムと言ったりする)を生成する部分、という2つに大略分けることが出来る。

だから、流れとしては次のようになる。

ソースプログラムフロントエンドバックエンドターゲットプログラム

さらに、フロントエンド、バックエンドをもうちと細かく見ると、

フロントエンド

字句解析
ソースプログラムを1字ずつ読み取り、その読み取ったものをあるかたまり(これをトークンという)に分ける。
構文解析
字句解析で得られたトークンを、ある規則にしたがって解析し、その構造を析出させる。このとき、変数名、関数名と判断されたトークンは、名前表(Symbol Table)に登録される。
意味解析
構文解析で析出された構造を、その意味まであわせて解析し、エラーチェックなどが為される。
中間表現
上記の工程を経て、構文的にも意味的にも妥当な、中間形式が出力される。

バックエンド

最適化
フロントエンドから出力された中間表現を、より効率的に、無駄をなくしたかたちに整斉する。
コード生成
最終形態であるターゲットプログラムを生成する。

ってな感じ。



つーわけで、「変数名とか関数名を管理する」のはフロントエンド構文解析のとこで出てくる名前表Symbol Tableでした!

PR
この記事にコメントする
お名前
メールアドレス
URL
コメント
選択肢にTable ってつくのが2つある。まず注目。それで、data structure ってあるからますます、なんとなく(C)か(E)だろうと。Symbolは 和訳はシンボルで、Parseは何じゃったかいなと考えて、そうそう説明するかなんかそんな意味だったなと記憶をたどる。これなら、7対3くらいで、(C)かなと思い、解答を見ると、あたーーーり。で、とても得意げ。でも、おれの解き方って、完全に「ト」なんですけど、結果オーライ。でも、どうなんでしょうね。こういう「ト」式解き方って。正解が結構続くと「ト」とは言えなくなるのでしょうか? でも、誰が考えても笑いが止まらんほど「アホ」な 解き方であります。
原作たそがれ清兵衛 2005/09/27(Tue)05:19:00 編集
それがですねえ、敵もさるもので、そういう解き方を逆手に取った選択肢の設定とか、たまにしてきたりするんですよ。

こういう択一式の一般的なセオリーとしては、原作たそがれ清兵衛さんが為されたように、「ダブってるものが正解ではないかと疑え」なんですけど、そういうつもりで見ると、あからさまに孤立してるようなやつが正解だったりする。

まあ、その場合、逆にそういうのが怪しいわけだから、2方面から考えていけばいい、ということですかね。
はやし 2005/09/27(Tue)05:29:00 編集
これは、知識が皆無のときに採るあくまでも非常手段ですね。で、知識も時間もないときの非常手段が、例の「番号分析」です。でも、あくまでも試験択一の正攻法は、十分な知識をもとに、ほとんど考えずとも一目瞭然という感じで答えを瞬殺することですね。しかし、時には、十分な知識をもとに、ほとんど考えずに一目瞭然という感じで答えを瞬殺したばずの答えが間違っていて、「ト」で解いたのが当たっていたりする。理不尽ですね。択一って。とは言うものの、択一について、絶対的にいえることは、全問「ト」式で解くと、必ず不合格になるということです。
原作たそがれ清兵衛 2005/09/27(Tue)05:43:00 編集
あるある、ありますねえ、「瞬殺」だったやつが違ってて、当てずっぽうが当たってるってこと。そんなとき、「諸行無常」を感じたりしますね。

何にせよ、批判めいた感じに受け取られたかもしれませんが、そういう「形態分析」って、ある意味大事なことだし、さらには面白いと思うから、今後もそういう分析を披露してもらえることを期待してます。
はやし 2005/09/27(Tue)06:01:00 編集
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
02 2017/03 04
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 15 16 17 18
19 20 22 23 24
27 28 29 30 31
最新トラックバック
メール
ブログ作成者(はやし)に直接訴えたいことがある、という場合は、下のアドレスにメールをどうぞ。

thayashi#ucalgary.ca
(#を@に置換してください)

ブログ内検索
Google
WWW を検索 このブログ内を検索

はやしのブログ内で紹介された
 書籍の検索はこちら
 音盤の検索はこちら
ランダムおすすめ
(忍者ブログに引越してから、うまくうごかなくなってしまいました。いつか、直します)
Randombook
このブログで紹介したことのある本をランダム表示。
Randomusic
このブログで紹介したことのある音をランダム表示。
自分がらみのリンク
はやしのブログ書籍一覧
このブログで言及された書籍の一覧。
はやしのブログ音盤一覧
このブログで言及された音盤の一覧。
最近のおすすめ本
最近のおすすめ音

Copyright © [ はやしのブログ ]
No right reserved except those which belong to someone else.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]