您的位置:首页 > 理论基础

编译原理-第2部分形式语言导论-第二节文法和语言-第一小节文法和语言的概念(文法产生的语言)

2018-03-25 14:53 696 查看

1 引言

    上午写了好几篇关于蓝桥杯的算法赛题,在今天下午,准备对上一个周已经学习的编译原理知识,进行复习和整理,对下一周要学习的知识进行预习。这一篇文章讲述的是关于文法产生的语言。

2 正文

2.1 直接推导

    令G是一文法,我们称 xAy直接推导出 xαy ,即 xAy推导(符号没有办法打出来,只能是汉字代替。。。)xαy 仅 A→α 是 G 的一条规则, 且x, y推导(VN∪VT)*。也就是说从符号串 xAy 直接推导出 xαy 仅使用一次规则。

2.1.1 例题一

    例如,设有文法G[S]:P为:S→ 0 1 | 0 S 1 ,有如下直接推导:S推导01       使用规则 S→01  此时   x=ε,   y=ε,S推导0S1     使用规则 S→0S1 , 此时    x=ε,  y=ε。0S1推导0011,使用规则 S→01,此时  x=0, y=1。
注:
(1)推导和规则的表示符号不同(没有打出来,貌似看不到)
(2)推导的依据是规则

2.2 推导

    如果存在一个直接推导序列:

     则我们称这个序列是一个从a0至an的长度为n的推导,记为  

 (注意推导符号上面有“+”号,图片中没有显示)。即表示从a0 出发,经 一步或若干步 或者说 使用若干次规则可推导出 an。

2.3 广义推导


(上面有“*”号),表示从a0出发,经过0不或若干步可推导出an。
区别:
                 直接推导的长度为1,
                 推导的长度大于等于1,
                 广义推导的长度大于等于0。

2.4 句型和句子


2.4.1 例题一



2.5 语言



2.5.1 例题一





2.5.2 例题二



3 结束语

    推导、直接推导、广义推导都比较好理解,因为概念本身不是特别难。句型和句子要注意的一个问题是,句子是属于终结符集(用小写字母表示)。要想知道某个问题表达的是什么语言,必须对概念掌握的清楚,明白其中的规律。
    这篇文章中,许多符号都没有办法写出来,真不好意思。。。
    分享和帮助是人生一大乐事,希望可以帮助您。本人才疏学浅,如果有不当之处,还请批评指正。同时欢迎大家评论、点赞及转发!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息