平成28年秋期午後問2

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
あいさん  
(No.1)
https://www.fe-siken.com/kakomon/28_aki/pm02.html

設問1は何とか理解できました…。
しかし、
設問2のcとdが解説をよく読んでも分からないです。
どなたか解説していただけないでしょうか。
どのような手順で考えていけばよいのでしょうか。
2022.05.07 19:20
nsさん 
FE シルバーマイスター
(No.2)
空欄c
「例1の式が受理される」ことが問題文から分かるので、そこから考えるといいと思います。
まず、例1の式に"op2"が含まれていますが、構文規則には"op2"に関する記述がないため、空欄cにはop2に関連するものが入ることが分かります。(イorウorエ)
次に選択肢を確認すると、いずれも「式 op2 "何か"」の形式になっています。よって、op2の右側だけを考えてよいです。例1の式を確認すると、"何か"の部分は「w op1 x」です。構文規則からこれに当てはまるものを探すと、項であることが分かります。
したがって、空欄cに当てはまるのは「式 op2 項」(ウ)となります。

空欄d
同様に例2の式が受理されることをもとに考えましょう。
例2の式には括弧が含まれており、括弧に関する構文規則は空欄dの部分のみです。例2の式が受理されるということは「x op2 y」を括弧の中に入れてOKということになります。「x op2 y」が構文規則の何に当てはまるかを考えると、式に該当します。
したがって、空欄dに当てはまるのは「式」(ウ)となります。
2022.05.07 20:46
あいさん  
(No.3)
ありがとうございます!納得できました!
設問は解けそうです!

ただ、構文規則の仕組みというか、解説にあるような図や説明が理解できていなくて、根本的な理解ができていない感じです。調べてもあまり出てこないのですが、ここを理解していないとまた今後つまづきそうです…

構文規則は文法と説明にありますが、まず、そもそも、「式、項、因子、名前」と分かれているのは、どういうことなのでしょうか?
「式、項、因子、名前」の中で置き換えをしていますが、それは何を意味しているのでしょうか?
2022.05.07 21:50
nsさん 
FE シルバーマイスター
(No.4)
構文規則というのはプログラミング言語の文法を定義するためのものと考えてください。コンパイラが構文規則をもとに構文解析という作業を行うときに使われます。構文規則に当てはまらないコードを書いてしまうと、いわゆる「構文エラー」になってしまいます。

>構文規則は文法と説明にありますが、まず、そもそも、「式、項、因子、名前」と分かれているのは、どういうことなのでしょうか?
この問題では「式」として受理されるかどうかが焦点になっているので、「式」の定義だけあれば事足ります。
ただ、「v」、「y op1 z」、「v op1 w op2 x op1 y」など様々なパターンの「式」を一つの定義で表すのはかなり大変です。
そのため、小さい単位(この問題では「名前」)から段階的に定義していくことで、定義全体をシンプルに書けるようにしています。

試験的な観点から言うと、構文規則関連は「与えられた一連の文字列を規則と照らし合わせて最終的に何に合致するか(どれとも合致しないか)」が分かるようになるのが重要だと思います。午前問題でも出題されています。(令和元年秋問7など)
2022.05.08 00:40
あいさん  
(No.5)
返信ありがとうございます!
他にも問題を解いて、理解を深めていきます!
2022.05.08 21:07

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop