責任編集: (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