0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BNF非終端記号

Last updated at Posted at 2020-09-10

応用情報技術者平成29年秋期 午前2

次のBNFにおいて非終端記号<A>から生成される文字列はどれか。

<R0> ::= 0|3|6|9
<R1> ::= 1|4|7
<R2> ::= 2|5|8
<A> ::= <R0>|<A> <R0>|<B> <R2>|<C>< R1>
<B> ::= <R1>|<A> <R1>|<B> <R0>|<C>< R2>
<C> ::= <R2>|<A> <R2>|<B> <R1>|<C> <R0>

image.png

1、<A>の定義にある「<A><R0>」「<B><R2>」「<C><R1>」の3つの型から導出されるBNFのパターン:

・[<A> <R0>]
非終端記号<A>に、それぞれ3つの型を当てはめます。
  <A><R0><R0>→<R0><R0><R0>
  <B><R2><R0>→<R1><R2><R0>   ※
  <C><R1><R0>→<R2><R1><R0>

・[<B><R2>]
非終端記号<B>に、それぞれ3つの型を当てはめます。
  <A><R1><R2>→<R0><R1><R2>
  <B><R0><R2>→<R1><R0><R2>
  <C><R2><R2>→<R2><R2><R2>

・[<C><R1>]
非終端記号<C>に、それぞれ3つの型を当てはめます。
  <A><R2><R1>→<R0><R2><R1>
  <B><R1><R1>→<R1><R1><R1>
  <C><R0><R1>→<R2><R0><R1>

2、
 123→ <R1><R2><R0> 上記※のところですね。
 124→ <R1><R2><R1>
 127→ <R1><R2><R1>
 128→ <R1><R2><R2>

簡単に考えると、Aは<A> <R0>|<B> <R2>|<C>< R1> というふうに定義されているので、
最後の文字はR0ですね。
つまり、0|3|6|9のいずれかですから、123でしょうね。

もうちょっと確かめとすると、
123→ <R1><R2><R0> の真ん中はR2ので、 つまり
<A><R0>
-><B><R2><R0>
-><R1><R2><R0>
になりますね。

・BNFとは、
バッカス・ナウア記法(英: Backus-Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。

参照:

BNFで表現されたあるプログラム言語の構文
https://qiita.com/lymansouka2017/items/f0960106b6490d1abd4d

バッカス・ナウア記法
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?