
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
BNFに似た表現形式で定義された数値の文法に対して、表現できない数値を選ぶ問題。
数値・小数・整数・数字列などの定義から、その表現形式で表せない数値を選ぶ問題。
① 数値=整数|小数|整数 小数。小数=小数点 数字列。整数=数字列|符号 数字列 → 符号は「整数」の先頭にしか付かない
② −.37 は「符号+小数」で、符号の後に数字列がない。整数にも小数にも「整数 小数」にも当てはまらない
③ ③
符号は整数の定義(符号 数字列)にしか現れないため、符号の直後には必ず数字列が必要である。−.37は符号の直後が小数点で、小数だけに符号を付ける定義はないため表現できない。一方、−19.1は「整数(−19) 小数(.1)」、.52は「小数」、4.35は「整数(4) 小数(.35)」、−125は「整数」として表せる。したがって③が最も不適切である。
BNFの問題は、各記号がどの規則の中にしか出てこないかを見る。符号が整数の規則にしかないなら、符号の直後には必ず数字列が来る。
キーワード: BNF、構文定義、文法、数値、情報・論理