基礎理論
アルゴリズム
コンピュータ構成要素
システム構成要素
ソフトウェア
ハードウェア
ヒューマンインタフェース
マルチメディア
データベース
ネットワーク
セキュリティ
システム開発技術
ソフトウェア開発管理技術
😀 mypage
🥇 ranking
📊 chart
📏 rule
No.21 次の規則から生成することができる式はどれか。


〔規則〕
<式> ::=<変数>|(<式>+<式>)|<式>*<式>
<変数> ::=A|B|C|D
⭕️
💾
🖊 ☑️
⭕️ [[ AnswerCalc[0] ]] % A [[ AnswerCalc[1] ]]
問題文のような構文定義法は、BNF(Backus-Naur Form,バッカス・ナウア記法)と呼ばれ、XMLをはじめ多くのプログラム言語の構文定義に用いられています。
BNFで使われている各記号は、「::=」が左辺と右辺の区切り、「|」がor(または)、「<>」は非終端記号を表しています。

各式を規則に従って変換していき、最後に<式>の形になれば構文定義に則っていることになります。
  • A+(B+C)*D
    A+(B+C)*D → <式>+<式>*<式> → <式>+<式>
  • (A+B)+(C+D)
    (A+B)+(C+D) → <式>+<式>
  • (A+B)*(C+D)
    正しい。以下のように、これだけが<式>になります。
    (A+B)*(C+D) → <式>*<式> → <式>
  • (A*B)+(C*D)
    (A*B)+(C*D) → (<式>)+(<式>)
💾 ✔️
[[ d.CommentTxt ]]
🏠 >   基本情報技術者試験 >     テクノロジー >     基礎理論 >  
< >
🥇