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