• 締切済み

BNFの書き方を教えてください

BNFを勉強しているのですが、そのBNFの書き方がわかりません。 どういうふうに作っていくのか、教えていただけませんか? お願いします。

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

> 例としてプログラムにこのような文があったとき > 略 > これだと非終端記号はAとBで終端記号はSat, Sun, Mon, Tue, Wed, Thu, Friってことになるんですか? この文脈で唐突に「プログラム」と言われても、その「プログラム」とBNFがどう関係するのかが分かりません。 C言語のenum文の文法を表すBNFを書けということなら、enumや { や ; も終端記号になるでしょう。 百歩譲って ・質問番号4700530や4701108の人と同じような課題をやっていて ・void Aとかvoid Bというのが「何らかの記号列を文法規則に従って読み込む関数」を表している のだと仮定するならば、 関数A()やB()が読み込める記号列を表す非終端記号として<A>や<B>を導入するのは悪くない考えかもしれません。 ところで、上記の仮定をすると今度はNo.1さんとの 「ある言語の文法をどのように決めて行くかということですか?」 「そのようにとらえてかまいません。」 というやり取りとの関係がよく分からなくなります。

amoyan
質問者

補足

そうですか、唐突過ぎて申し訳ありません。 私の説明不足ですみません。 そして、ご迷惑をかけて申し訳ありません。 アドバイスを頂き、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

バッカス・ナウア記法の意味のBNFでいいんですよね? 大ざっぱな手順としてはこんな感じでしょうか。 1. 現れうる全ての終端記号を列挙する。 2. そのBNFで定義する文法全体を表す非終端記号を決める。 3. 定義がまだ与えられていない非終端記号を左辺として、::= の右辺にその非終端記号の定義を書く。定義に必要ならば、右辺に新たな非終端記号を導入してもよい。左辺の非終端記号と同じ非終端記号が右辺にも現れる再帰的定義になる場合もある。 4. 未定義の非終端記号がなくなるまで、3を繰り返す。 5. 定義したBNFに過不足がないかを確認する。 たとえば、1桁以上の数字(ただし、先頭の桁に0が現れてはいけない)を表すならばこんな感じでしょうか。答えは一つではないので、これとは違う定義も作れます。 <number> ::= <non-zero-digit> | <non-zero-digit> <digits> <digits> ::= <digit> | <digit> <digits> <non-zero-digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <digit> ::= 0 | <non-zero-digit>

amoyan
質問者

補足

そのように解いていくのですか。 それとわからないところがあるんですが、非終端記号と終端記号です 下に例としてプログラムにこのような文があったとき enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri}; void A void B これだと非終端記号はAとBで終端記号はSat, Sun, Mon, Tue, Wed, Thu, Friってことになるんですか? その部分がよくわからないので、教えていただけませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

質問が漠然としていて何が訊きたいのかわかりません。 BNFの書き方というのは、ある言語の文法をどのように決めて行くか ということですか?

amoyan
質問者

補足

そのようにとらえてかまいません。 それとわかりにくい質問ですみません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • BNF氏について

    マネックス証券や野村証券など様々な証券会社がありますが、あの株の天才として有名なBNF氏はどの証券会社を使っているのでしょうか?知っている方がおらしゃれば回答願います。

  • 拡張BNF記法について

    BNF記法で四則演算の表記がよくわからなかったのですが、 例えば、3+4を拡張BNF記法で表記する場合はどうしたらいいんでしょうか? '3','+','4'でいいのでしょうか? BNF記法は初めてやるので全然わからないんですよ・・・ ネットで探しても、わかりやすいのが見つからなくてこまってます>< 是非教えてほしいです。 あと、できれば(2+3)*4の表記も教えてもらえると助かります^^;

  • BNFさんとglobexとsgx

    BNFさんはザラバ中ずっとglobexやsgxを見ているらしいです。 globexやsgxが何かは分かったのですが、BNFさんがglobexやsgxのどの銘柄を注視して、その銘柄どうなった場合、どういう行動をとっているのかが、わかりません。 教えてください。 宜しくお願い致します。

  • BNFさんの手法

    あるサイトでBNFさんの投資方法を紹介しているのですが(記事は2008年1月)、 それによると、上げ相場では、順張りスイングトレードで (1)連れ高銘柄を利用するもの (2)先物相場を利用するもの があり、 (1)は、値動き似ているグループ株(=連れ高株、造船や鉄鋼などで分ける)の中で、値上がりが他と比べて遅れているものを狙う(買う)というやり方。 (2)は、日経225先物が日経平均に先だって動くため、先物が急騰したら日経平均に連れ高する銘柄を買うというやり方。 (1)と(2)はそれぞれ別々の手法ではなく連動して用いると思うのですが、 つまり、先物の動きをよく観察して、上がれば日経平均に連れ高する主力株に目をつけ、そのグループ株の中で出遅れているものを買う、ということ。 BNFさんは、連れ高する瞬間を見極めるのに600~700銘柄の値動きを1日中観察しているそうです。(今はどうか知りませんが) で、質問なのですが、彼の上記の手法は今でも通用するのでしょうか? このやり方で、成功されている方はいらっしゃいますでしょうか? または、これはBNFさんしかできない高等テクニックなのでしょうか? かなりの修業を積まないと体得できるものではないことは、素人の私にも分かりますが、チャレンジされた方がいらっしゃいましたら教えて下さい。宜しくお願い致します。

  • BNFさんの買った株の根拠について

    先日久米宏氏の番組に出ていたBNFさんについての質問です。なぜ、BNFさんは5月16日(金)に商社株をセクター買いしたのでしょうか?買った理由が分かる方教えてください。ちなみにこの日夜のNYは小反落、週明け月曜の日経も銀行株軟調で決していい相場とはいえない状況でした。しかし、商社株に関しては窓をあけて騰がっています。

  • BNF記法について

    最近質問させていただいたものですが、また分からな いことがあり、質問させてください。 ある、アルゴリズムの問題集をやっていて、BNF記法に 従った数式を解析して計算するというものでした。 BNFの定義として、 式=項 | 式 加法演算子 項 項=因子| 項 乗法演算子 因子 因子=数 加法演算子='+'|'-' 乗法演算子='*'|'/' となっています。 そのテキストで、例として、 項=3*4/5 というのがありました。これは理解できました。しかし、 式=1+2+3*4/5-6 というのが理解できません。 式=式 加法演算子 項 と、項=項 乗法演算子  因子 というのを再帰的に当てはめていくのだと思うのです が、式として成立させるのは定義からして無理だと 思うのですが。1+2+3*4/5-6を式として解釈するには どのようにしたらよいかお教えください。よろしく お願いいたします。 ちなみに、1+2+3*4/5-6は、問題集に載っているアルゴリズムで問題なく解けました。  

  • BNF(バッカス)記法について

    次のBNFで定義されるビット列Sであるものは、どれか。 <S>::=01|0<S>1 ア、000111 イ、010010 ウ、010101 エ、011111 正解:ア このように<変数>は、左辺と同じ変数を右辺で用いることが出来ます。 0<S>1を考えるには、まず<S>が使われていない「01」を代入します。 すると「0011」です。と記載されています。 自力で調べたのですが、 BNF(バッカス)記法で書かれた問題が読めません。 何故「01」を代入すると「0011」になるのでしょうか。 何故「ア」が正解になるのでしょうか。 お手数お掛けしますが、ご存知の方おられましたら、ご教授お願いします。 以上、よろしくお願い致します。

  • 数式のBNF表記を教えてください

    Javaで数式パーサを作る必要に駆られており、式の評価方法を探しています。 以前、情報の教科書でBNFを見たことがあって、これで行こう!と思ったのですが、どうしても思い出せません。(^_^; いくつか検索したのですが、小難しくて理解には至りませんでした。 たしか、3文ほどで表記できたと思うのですが、わかりやすく示しては頂けないでしょうか。 よろしくお願いいたします。

  • BNF表記と文脈自由文法の関係について

    初めまして。最近、コンパイラの学習を始めた初心者です。よろしくお願いいたします。 ある文献には、「BNF表記は文脈自由文法を表す」と書かれています。これは、BNF表記が表す文法と文脈自由文法が等価と文字通り理解していいものなのでしょうか?(つまり、BNF表記された文法は全て文脈自由文法で、文脈自由文法は全てBNF表記で表すことができる、ということなのかです。) また文脈“自由”文法があるのであれば、文脈“依存”文法というもの存在するのでしょうか? 以上2点につきまして、ご回答よろしくお願いいたします。

  • 戦歴の株取引のプロ・BNFさんについて

    戦歴の株取引のプロ・BNFさんを御存知でしょうか? テレビ東京系・ガイアの夜明け等にテレビ出演をし、他には雑誌等にも 掲載されたことのある「ジェイコム男」と呼ばれた現在数百億円の資産を持つ 投資家です。 東京港区に4億円のマンションを購入し、現在は千葉県に住んでいる妻子ある そんなBNFさんですが、この方のトレードスタイルはスイングトレードで 主に逆張りで稼いでいるそうなんです。 ズバリ、このBNFさんのようになれるのはとても難しい事なのでしょうか?

Dependency Packageが消えた
このQ&Aのポイント
  • PCDA770KABのデスクトップで無線LAN接続をしていますが、LavieアプリナビからLavieかんたん設定を消してしまったため、Dependency Packageのインストール済みが消えてしまいました。毎回はじめの設定画面が表示され、インストールを促されます。
  • Lavieかんたん設定Libraryはまだありますが、Dependency Packageが消えたため、本アプリを起動することができません。
  • 問題解決のために、はじめの設定画面で「はじめ設定Dependency Package」をインストールする必要があります。
回答を見る