编译原理学习周入门教程--(5)上下文无关文法,及其语法树

本文详细介绍了上下文无关文法及其在程序语言语法中的应用。通过实例展示了如何进行最左推导和最右推导,以及如何构造语法树。同时,讨论了二义文法的概念,强调了在编程语言中避免二义性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

         首先我们回顾一下上篇的内容,上篇讲述了四种类型的文法,0型1型2型3型,他们要求的规则越来越严格。

 

         开始教程

 

         本篇着重讲解上下文无关文法及其语法树,因为对于计算机程序来讲,上下文无关文法表达能力足够强,来表达大多数程序语言的语法。

 

         描述一种上下文无关的推导工具:句型的推导和语法树(推导树)

 

          给定文法G(VN,VT,P ,S),对于G的任何句型都能构造与之关联的语法树。这棵树满足下面四个条件

 

           ① 每个结点都有一个标记,此标记是V的 一个符号。(说的是节点一定是终结符或非终结符)


           ② 根的标记是S。(说的是树根的标记是开始符号S)


           ③ 若一结点标记A,至少有一个从它出发的分枝,则A肯定在VN中(说的是如果一个节点有分支的话,这个节点一定是非终结符)


         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值