責任編集: (inoue@ist.osaka-u.ac.jp)
言語処理工学中間試験

			2003年11月13日

ノート、教科書持ち込みなし。

問題(1)は、解答用紙の1枚目、(2)は、2、3枚目、(3)は4枚目に書く事。そ
れ以外の部分に書いても得点にしない。

(1) マイクロソフトが提唱するプログラミング言語C#は、通常中間言語
CLI(Common Language Infrastructure)に変換され、さらにそれをインタプリ
タで解釈実行するか、または、コンパイラで目的の計算機の機械語にコンパイ
ルされる。

今、CLIで書かれたC#からCLIへのコンパイラ、およびX86で書かれたCLIから
X86へのコンパイラがあるとする。

(1-1) C#で書かれたユーザプログラムPがコンパイルできるようになるまでの
過程をT図で書け。

(1-2) 今、最小の手間で、別の計算I(Itanium)上でC#のプログラムをコンパ
イルできるようにしたい。何を手で書けば良いか。T図で書け。

(1-3) 上記の結果を利用してI上でPがコンパイルできるようになるまでの過程
をT図で書け。

(2) 次の拡張文法Gにたいして、Follow集合と構文解析表を求めよ。

文法G
        (0) E'-> E
        (1) E -> E * i
        (2) E -> E * * i
        (3) E -> i

また、i**i*i の構文解析の過程および得られた構文木を示せ。

(3)
(3-1)次の文法を左再帰性がない形に書き換えよ。

  A ->  A a1 |  A a2 | ... | A am | b1 | b2 | ... | bn


(3-2)次の文法の各非終端記号について、FirstとFollowの集合を求めよ。

	S'  ->  S			S   -> i ;

	S   ->  ? S : S			T   -> S T

	S   -> ( T )			T   -> S

	S   -> i : S