HOME»データベーススペシャリスト平成29年春期»午前Ⅰ 問2
データベーススペシャリスト平成29年春期 午前Ⅰ 問2
問2
あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これをBNFで定義したとき,a に入るものはどれか。
<digit>::=0|1|2|3|4|5|6|7|8|9
<letter>::=A|B|C|…|X|Y|Z|a|b|c|…|x|y|z
<identifier>::= a
<digit>::=0|1|2|3|4|5|6|7|8|9
<letter>::=A|B|C|…|X|Y|Z|a|b|c|…|x|y|z
<identifier>::= a
- <letter>|<digit>|<identifier><letter>|<identifier><digit>
- <letter>|<digit>|<letter><identifier>|<identifier><digit>
- <letter>|<identifier><digit>
- <letter>|<identifier><digit>|<identifier><letter>
- [出典]
- 応用情報技術者
平成29年春期 問4と同題
分類
テクノロジ系 » 基礎理論 » 情報に関する理論
正解
エ
解説
- 2つ目の項に<digit>があり、先頭が数字で始まる場合があるので誤りです。
例えば、<identifier>のように、先頭が数字で始まる文字列が使用可能になってしまいます。
↓
<identifier><letter>
↓
<digit><letter> - 「ア」と同じ理由で誤りです。
- 英字が先頭にしか使えないので誤りです。
例えば、<identifier>→<identifier><digit>というように展開されますが、先頭以外の文字は必ず数字<digit>になってしまうことになります。
↓
<identifier><digit><digit>
↓
<identifier><digit><digit><digit>
↓
<letter><digit><digit><digit> - 正しい。