基本情報技術者試験
2003年度 = 平成15年度・春期
午前
問11
数値に関する構文が次のとおり定義されているとき、<数値>として扱われるものはどれか。
<数値>
::= <数字列> | <数字列>E<数字列> | <数字列>E<符号><数字列>
<数字列>
::= <数字> | <数字列><数字>
<数字>
::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<符号>
::= + | -
ア -12
イ 12E-10
ウ +12E-10
エ +12E10
解答
イ
解説
よく使われる構文記法である
BNF記法
(
backus naur form
)に関する問題です。縦線 | は、日本語での“または”に相当します。したがって、数字と符号は、次のように解釈できます。
<数字>
は、
0
または
1
または …
9
です。
<符号>
は、
+
または
-
です。
また、<数字列>の解釈は次のようになります。
<数字列>
は、
<数字>
または
<数字列>に<数字>が続くもの
です。
すなわち、<数字列>は、1個以上の<数字>の並びとなります。
問題として問われている<数値>は、次のように解釈されます。
<数値>
は、
<数字列>
または
<数字列>
に
E
が続いたものに
<数字列>
が続いたもの
または
<数字列>
に
E
が続いたものに
<符号>
が続いたものに
<数字列>
が続いたもの
です。
先頭は必ず<数字列>でなければなりませんので、最初の文字が符号である
ア
、
ウ
、
エ
は<数値>とみなせません。正解である
イ
の12E-10のみが、正しく構文規則にのっとっています。