アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
基本情報技術者 平成23年・秋 問4 ですが、ネットの解説を読んでもわからないので教えてください。

<式> ::= <変数> | (<式> + <式>) | <式> * <式>
 <変数> ::= A | B | C | D

質問(1)「::= 」とはなんですか?ググっても出ませんでした。

質問(2)「|」は、「あるいは」の意味でいいですか?
    上記でいえば、「A | B | C | D」とは、「変数はAかBかCかDである」という解釈でいいですか?

使用URL
http://www.k4.dion.ne.jp/~type_f/23A_L2/23A_L2_0 …

A 回答 (2件)

こう定義する、ぐらいで構いません。


そのページの下の方にあるBNF(バッカス記法)のルールです。
<X>::=<Y>・・・<X>は<Y>である
<A><B>・・・<A>と<B>をつなげる
<A>|<B>・・・<A>または<B>


例えば
<変数> ::= A | B | C | D

だと、<変数>はAまたはBまたはCまたはD
という意味です。


<式> ::= <変数> | (<式> + <式>) | <式> * <式>

の場合、<式>は
<変数>
(<式> + <式>)
<式> * <式>

のどれかです。左辺と右辺に同時に<式>がありますので注意してください。


この問題は解答群をそれぞれBNFで書き表すことができるかどうかチェックします。
    • good
    • 0
この回答へのお礼

ok-kanetoさん、前回に引き続き、丁寧な回答をありがとうございました。

お礼日時:2012/09/09 13:49

(1) バッカス・ナウア記法(BNF: Backus-Naur Form) において用いられる記号です。


質問文にて引用された例のように次のような形式で,
<式> ::= 右辺
<変数> ::= 右辺
「(今回,出題されているプログラム言語において)式とは何か?」「変数とは何か?」という構文を定義しています。
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83% …

(2) はい,それで良いです。
    • good
    • 0
この回答へのお礼

回答をありがとうございました。
わかりやすく、他の回答と甲乙つけがたかったのですが、申し訳ありませんが、1番手の方にBAをつけさせていただきました。

お礼日時:2012/09/09 13:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!