情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ 問2「あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり…」の正解と解説です。情報処理安全確保支援士試験の「形式言語」分野の過去問で、各選択肢の正誤も解説付きで確認できます。
エ. <letter <identifier<letter
識別子は「先頭が英字、以降は任意個の英数字」。BNFでは再帰で「既存の識別子の末尾に英字または数字を追加」と定義する。基底は<letter(先頭1文字は英字)、再帰部は<identifier<letterと<identifier<digit。これらを過不足なく含むエが正解。構文を再帰規則で表す感覚はコンパイラ理解の基礎となる。