首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

文法是干吗的

2012-10-14 
文法是干什么的?学编译原理肯定会接触到文法,那么文法是干什么的,这个问题困扰了我好几天。今天终于有了初

文法是干什么的?

       学编译原理肯定会接触到文法,那么文法是干什么的,这个问题困扰了我好几天。今天终于有了初步的答案,拿出来和大家分享一下。

我的解答很简单,相信你看完会明白,更深层次的知识大家可以看书。


文法是用来定义语言的规则的,如一般自然语言的句子的结构是:

名词短语+动词短语+句号

动词短语=动词+名词短语


如:周瑜打黄盖。  我是中国人。 等等


现在来产生一句话:“乔布斯是CEO。”,如下图

文法是干吗的


为了简单起见,我们假设某个文法只有上述简单元素构成

那么它的组成可以定义为G={Vn,Vt,S,P}


上图中类似“<名词短语>”的是非终结符,类似于“乔布斯”的是终结符

VN={<句子>,<名词短语>,<动词短语>,<句号>,<动词>}

VT={乔布斯,CEO,是,。}

S=<句子>

P={

<句子>→<名词短语><动词短语><句号>

<名词短语>→乔布斯|CEO

<动词短语>→<动词><名词短语>

<动词>→是

<句号>→。

}


所以:

  • 非终结符是用来构造语法的,是语法范畴的符号,不出现在最终的句子中,可以用它们和终结符构成句型,如:乔布斯 是 <名词短语>
  • 最终的句子中只有终结符
    • 凡是能通过S最终推导出最终全是终结符的字符串都是符合该文法的句子
      怎么样,有点感觉了没有。
      1楼Jesse621昨天 15:22
      把推导树也讲了
      Re: wwwwenhuan昨天 20:18
      回复Jesse621n必须的

热点排行