BNF のパラメタ指定
出典: 平成30年度 秋期 応用情報技術者試験 午前 問4 (IPA)
次に示す記述は,BNF で表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,適切なものはどれか。
<パラメタ指定> ::= <パラメタ> | (<パラメタ指定>,<パラメタ>)
<パラメタ> ::= <英字> | <パラメタ><英字>
<英字> ::= a | b | c | d | e | f | g | h | i- ア ((abc,def),ghi)
- イ ((abc,def))
- ウ (abc,(def))
- エ (abc)
正解と解説を見る
正解: ア
- ア: abc → (abc,def) → ((abc,def),ghi) と規則どおりに組み立てられるので正しい答えです。
- イ: ((abc,def)) は、外側の括弧の中にコンマと 2 つ目の要素がありません。括弧は必ず「(パラメタ指定,パラメタ)」の形で使います。
- ウ: (abc,(def)) は、コンマの後ろが (def) になっています。コンマの後ろは英字だけの <パラメタ> でなければなりません。
- エ: (abc) は、括弧の中にコンマと 2 つ目の要素がありません。
ポイント
- <パラメタ> は英字 (a〜i) を 1 文字以上並べたものです。
- <パラメタ指定> は、<パラメタ> そのものか、「(<パラメタ指定>,<パラメタ>)」です。
- ((abc,def),ghi) は、abc がパラメタ指定、(abc,def) がパラメタ指定、さらに ((abc,def),ghi) もパラメタ指定、と順に組み立てられます。