制作无上下文语法并平衡括号

时间:2017-01-27 15:43:43

标签: grammar context-free-grammar

我需要为带有平衡括号的字母{a,),(}构建一个无上下文的语法。

我不确定平衡括号到底是什么意思,以及我如何为它构建无上下文语法。如果有人可以写下这方面的步骤,我会很感激。

1 个答案:

答案 0 :(得分:1)

为了给出粗略的递归解释,括号的平衡通常意味着任何单词,如果限于括号,

  1. 从打开括号开始,以尽可能多的右括号结束;
  2. 是这些词的串联;
  3. 是通过在前面放一个开口支架并在末端放一个开口来获得的。
  4. 这个想法可以形式化为无上下文语法如下。

    starting symbol: E
    terminal symbols: a,(,)
    E => a
    E => Ea
    E => (E)
    E => EE
    

    根据this解释, context context 在这里意味着生产规则的左侧不包含终端符号和正好一个非终端符号。