応用情報技術者試験 平成29年度春期 午前 問4「あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約40%です。
エ. <letter><identifier><letter>
正答率 40.4%(1,217人中 492人が正解)
BNFの再帰定義では、無限の繰り返しを止める“終端”がどこかに必要で、識別子の終端(最も短い形)は条件「先頭が英字」を表す<letter>である。識別子は「すでにある識別子の後ろに英字または数字を1つ足す」形で伸ばせるので、<identifier><letter>と<identifier><digit>を加えた選択肢エが正しい。これにより、先頭は必ず<letter>、2文字目以降は英数字が任意個続く文字列を過不足なく定義できる。