次の BNF において非終端記号 〈A〉 から生成される文字列はどれか。 〈R0〉 ::= 0|3|6|9 〈R1〉 ::= 1|4|7 〈R2〉 ::= 2|5|8 〈A〉 ::= 〈R0〉|〈A〉〈R0〉|〈B〉〈R2〉|〈C〉〈R1〉 〈B〉 ::= 〈R1〉|〈A〉〈R1〉|〈B〉〈R0〉|〈C〉〈R2〉 〈C〉 ::= 〈R2〉|〈A〉〈R2〉|〈B〉〈R1〉|〈C〉〈R0〉
ア. 123
BNF(バッカス記法)は構文規則を定義する表記で,::= の左辺の非終端記号を右辺の並びに置き換えていける(|は『または』)。〈R0〉は3で割り切れる数字{0,3,6,9},〈R1〉は3で割って1余る{1,4,7},〈R2〉は3で割って2余る{2,5,8}という分類になっている点に着目する。〈A〉から生成できるのは末尾を順にたどると『123』だけで,〈A〉⇒〈A〉〈R0〉('3'は R0)⇒〈B〉〈R2〉〈R0〉('2'は R2)⇒〈R1〉〈R2〉〈R0〉('1'は R1)=『123』と導出できるため,アが正しい。
応用情報技術者試験 平成29年度秋期 午前 の過去問一覧へ戻る・問2