- ベストアンサー
■ 式の構文規則について ■
下記URLの設問2にある式の構文規則についてです。 http://情報処理試験.jp/FE22a-pm/t02.html 式の構文規則にある「式」や「項」、「因子」、「名前」はどんな意味なのでしょうか? 構文規則の見方がよく理解できませんでした。 ご教授いただける方、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
---------------------------------------- (4) 名前→ a l b l c l d l e 名前とは,a または b または c または d または e である。 このプログラム言語では,変数名として a, b, c, d, e の5種類のみを許可するということ。 ---------------------------------------- (3) 因子→ 名前 | (式) 因子とは,名前 または カッコで囲まれた式 である。 因子という用語は「ひとかたまりの要因として扱える識別子」を意味する。 a や b といった単独の変数名はもちろん因子である。 さらに (a * b - c / d) といったような「カッコで囲まれた式」も全体として,単独の変数名の代わりとして置くことができるので因子である。 ---------------------------------------- (2) 項 → 因子 | 項 op2 因子 項とは,ただ1つの因子,または,演算子op2によって因子が連結されたものである。 具体例を挙げると,a * b / c * d は,ひとかたまりの項である。 項(左辺)の定義の中に 項(右辺)を用いている,自己言及的な再帰的定義がイメージできなければ,次のQ&Aを参照。 http://okwave.jp/qa/q6373419.html の私の過去の回答ANo.2 ---------------------------------------- (1) 式 → 項 | 式 op1 項 式とは,ただ1つの項,または,演算子op1によって項が連結されたものである。 式(左辺)の定義の中に 式(右辺)を用いている,自己言及的な再帰的定義がイメージできなければ,上記のQ&Aを参照。 ちなみに,演算子op2の具体例は * と / であり,演算子op1の具体例は + と - である。 + - より * / の方が結合優先順位が高い演算子であるため, 因子と演算子の連なりは,先に演算子op2(* /)によって項というかたまりとして結びつき, 項と演算子の連なりは,その後で演算子op1(+ -)によって式というかたまりとして構成される。 ---------------------------------------- 質問文のリンク先の設問2で与えられた次の文字列が,このプログラム言語における正しい構文の〈式〉である,と認識される過程の例は次のとおり。 a op1 b op2 c op2 (d op1 e) ↓規則(4) 名前 op1 名前 op2 名前 op2 (名前 op1 名前) ↓規則(3) 因子 op1 因子 op2 因子 op2 (因子 op1 因子) ↓規則(2) 因子 op1 因子 op2 因子 op2 (項 op1 項) ↓規則(1) 因子 op1 因子 op2 因子 op2 (式) ↓規則(3) 因子 op1 因子 op2 因子 op2 因子 ↓規則(2) 因子 op1 項 ↓規則(2) 項 op1 項 ↓規則(1) 式
お礼
大変分かり易い丁寧な解説ありがとうございました。 また機会がございましたら、よろしくお願いいたします。