平成18年春期試験問題 午前問8
問8解説へ
次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメータ指定>として,正しいものはどれか。
<パラメータ指定>::=<パラメータ>|(<パラメータ指定>,<パラメータ>)
<パラメータ>::=<英字>|<パラメータ><英字>
<英字>::=a|b|c|d|e|f|g|h|i
<パラメータ指定>::=<パラメータ>|(<パラメータ指定>,<パラメータ>)
<パラメータ>::=<英字>|<パラメータ><英字>
<英字>::=a|b|c|d|e|f|g|h|i
- ((abc,def))
- ((abc,def),ghi)
- (abc)
- (abc,(def))
広告
解説
各肢を展開していき<パラメータ指定>に帰結するか否かを調べていきます。※英字の並びは<パラメータ>で表されます。
<パラメータ指定>
→ (<パラメータ指定>,<パラメータ>)
→ ((<パラメータ指定>,<パラメータ>),<パラメータ>)
→ ((<パラメータ>,<パラメータ>),<パラメータ>)
括弧の位置と英字列の数から考えて適切な構文となっているのは「イ」とわかります。
- ((<パラメータ>,<パラメータ>))
→ ((<パラメータ指定>,<パラメータ>))
→ (<パラメータ指定>)
外側の括弧を外すことができないので不適切です。 - ((<パラメータ>,<パラメータ>),<パラメータ>)
→ ((<パラメータ指定>,<パラメータ>),<パラメータ>)
→ (<パラメータ指定>,<パラメータ>)
→ <パラメータ指定>
最終的に<パラメータ指定>になるのでこれが正解です。 - (<パラメータ>)
→ (<パラメータ指定>)
括弧を外すことができないので不適切です。 - (<パラメータ>,(<パラメータ>))
これ以上変形できないので不適切です。
<パラメータ指定>
→ (<パラメータ指定>,<パラメータ>)
→ ((<パラメータ指定>,<パラメータ>),<パラメータ>)
→ ((<パラメータ>,<パラメータ>),<パラメータ>)
括弧の位置と英字列の数から考えて適切な構文となっているのは「イ」とわかります。
広告