2017-02-13 20 views
0

Я немного смущен тем, как показать вывод чего-то заданного грамматики. Например, мне нужно показать вывод ((())) с использованием грамматики и начиная с S. Это грамматика: S =() | (S). Вот как выглядит мое решение до сих пор, S ->() -> (()) -> ((())). Я чувствую, что это совершенно неправильно, поэтому любое объяснение мне очень помогло бы. Я новичок в этой теме.Как вы показываете вывод строки с использованием грамматики?

+0

Покажите последовательность символов и то, что вы делаете на каждом шаге. Нет никакого производства, которое приведет вас от '()' to '(())' или оттуда в '((()))'. – user2357112

ответ

0

Вы ничего не можете извлечь из(). Если вы хотите продолжить работу за пределами первого шага, там должен быть нетерминальный символ. Ваш единственный нетерминальный символ - S.

+0

Таким образом, невозможно показать вывод ((())) из грамматики: S =() | (S)? – Coder123

+0

Возможно. Учитывая, что вы не можете извлечь его из(), какова ваша другая возможность? –

+1

(S) - другая возможность. Поэтому я бы начал следующим образом: S -> (S) -> ((S)) -> то что? Возможно, это S -> (S) -> ((S)) -> ((())) – Coder123