::=

学籍番号
学年
年
氏名
第 4 章 下降型構文解析(1) (5/18〆切)
レポート課題
解答例
1. BNF 記法で記述された左再帰性を持つ以下の文法を(1)右再帰に書き換えよ。また
(2)EBNF 記法に書き換えよ。(p.58 4.1 節)
<T> ::= <T> “*” <F> | <T> “/” <F> | <F>
(1)
<T> ::= <F> <T’>
<T’> ::= “*” <F> <T’> | “/” <F> <T’> | ε
(2)
<T> ::= <F> { ( “*” | “/” ) <F> }
2. 以下の文法を左括り出しを行え。(p.58 4.1 節)
<E> ::= <T> “+” <E> | <T> “-” <E> | <T>
<E> ::= <T> [ ( “+” | “-” ) <E> ]
3. 以下の文法が与えられたとき、各非終端記号の First 集合を求めよ。ただし、NAME,
INTEGER はそれぞれ変数名, 整数を表す終端記号とする。(p.64 4.2 節)
<E> ::= <T> { (“+” | “-”) <T> }
<T> ::= <F> { (“*” | “/” | “%” ) <F> }
<F> ::= “-” <U>
| “!” <U>
| <U>
<U> ::= NAME
| NAME (“++” | “--” )
| INTEGER
| “(” <E> “)”
First (<U>) = { NAME, INTEGER, “(” }
First (<F>) = { “-” , “!”} + First (<U>) = { “-”, “!”, NAME, INTEGER, “(” }
First (<T>) = First (<F>) = { “-”, “!”, NAME, INTEGER, “(” }
First (<E>) = First (<T>) = { “-”, “!”, NAME, INTEGER, “(” }