合格.dev › 情報処理安全確保支援士試験 › 情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ › 問2 情報処理安全確保支援士試験 情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ 問2: あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これを BNF で定義したとき,a ← 情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ
☆ あるプログラム言語において,識別子(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
<letter> | <digit> | <identifier><letter> | <identifier><digit>
<letter> | <digit> | <letter><identifier> | <identifier><digit>
<letter> | <identifier><digit>
<letter> | <identifier><digit> | <identifier><letter>
問題本文 あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これを BNF で定義したとき,a に入るものはどれか。 <digit ::= 0 9 <letter ::= A z <identifier ::= a
選択肢 ア. <letter <identifier<digitイ. <letter <identifier<digitウ. <letter | <identifier<digitエ. <letter <identifier<letter正解 エ. <letter <identifier<letter
解説 識別子は「先頭が英字、以降は任意個の英数字」。BNF では再帰で「既存の識別子の末尾に英字または数字を追加」と定義する。基底は<letter(先頭1文字は英字)、再帰部は<identifier<letterと<identifier<digit。これらを過不足なく含むエが正解。構文を再帰規則で表す感覚はコンパイラ 理解の基礎となる。
選択肢ごとの解説 ア. 基底に<digitを含み、数字始まりの識別子を許してしまうため誤り。イ. <digit基底や<letter<identifier(2文字目以降を先頭扱い)を含み定義に反し誤り。ウ. <identifier<letterが無く、2文字目以降に英字を付けられないため不足で誤り。エ. 基底<letterと再帰<identifier<digit・<identifier<letterを過不足なく備え正しい。情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ の過去問一覧 へ戻る・問2
この問題で扱った分野をさらに深掘りしたい方へ。情報処理安全確保支援士試験の試験概要・出題範囲・合格基準・標準学習スケジュール・分野別の攻略法までを 1 ページに集約した独自編集の学習ガイド と、よくある質問をまとめた FAQ を用意しています。
解答に出てきた用語や手順を体系的にまとめて確認したいとき 受験スケジュール・申込み方法・合格基準を改めて整理したいとき 本サイトの「順番に解く / ランダム / 模試」など学習モードの使い分けを知りたいとき
この問題ページの解説・ヒント・分野タグ・関連問題リンクは、すべて合格.dev 編集部による独自編集です (問題文・選択肢は試験団体の公表過去問の引用)。詳しくは 編集方針 ・ 出典一覧 を参照してください。