あるプログラムにおいて、識別子(identifier)は、先頭が英字で始まり、それ以降に任意個の英数字が続く文字列である。これをBNFで定義した時、aに入るものはどれか。

【問題】

あるプログラムにおいて、識別子(identifier)は、先頭が英字で始まり、それ以降に任意個の英数字が続く文字列である。これをBNFで定義した時、aに入るものはどれか。

<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<letter> ::= A | B | C | … | x | y | z

<idenfier> ::= a

ア.<letter> | <digit> | <identifier><letter> | <identifer><digit>

イ.<letter> | <digit> | <letter><identifier> | <identifier><digit>

ウ.<letter> | <identifer><digit>

エ.<letter> | <identifier><digit> | <identifier><letter>

【解答】

「先頭が英字で始まる」という制限があるから、先頭に数字を入れることの出来るアとイは誤答であることが分かる。

さらに、「任意個の英数字が続く」という制限に対して、ウは数字を組み込んだ場合に、<identifier><identifier><digit>となり、最後の文字が数字に限定されるため、誤答であることが分かる。

よって、消去法で、エが解答となる。

↓クリックしていただけると励みになります↓
にほんブログ村 株ブログ 株日記へ にほんブログ村 メンタルヘルスブログ 統合失調症へ にほんブログ村 為替ブログ 為替日記へ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする