news 2026/6/13 12:35:56

【程序语言与编译】语法分析:自上而下推导(最左/最右)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【程序语言与编译】语法分析:自上而下推导(最左/最右)

适合读者:软考中级备考同学
阅读时间:3分钟
内容:自上而下推导、最左推导与最右推导的定义、示例、区别、例题


1. 什么是自上而下推导?

语法分析分为两种策略:自上而下自下而上
自上而下推导是从文法的开始符号出发,反复用产生式的右部替换左部的非终结符,逐步展开,最终得到输入符号串。它直观地模拟了从语法树根节点向下构造叶节点的过程。

软考中常考查最左推导最右推导两种方式,二者在最左/最右替换策略上不同,但最终得到的语法树相同。


2. 最左推导(Leftmost Derivation)

定义:在推导的每一步,都选择当前句型中的最左边的非终结符进行替换。

特点

  • 符合多数递归下降解析器的工作方式
  • 易于手工推导

示例
文法如下:

E → E + T | T T → T * F | F F → ( E ) | id

输入串id + id * id,最左推导过程:

E ⇒ E + T (选择 E → E + T,替换最左非终结符 E) ⇒ T + T (替换最左的 E 为 T) ⇒ F + T (替换最左的 T 为 F) ⇒ id + T (替换最左的 F 为 id) ⇒ id + T * F (替换最左的 T 为 T * F) ⇒ id + F * F (替换最左的 T 为 F) ⇒ id + id * F (替换最左的 F 为 id) ⇒ id + id * id (替换最左的 F 为 id)

每一步都是替换当前句型中最左边的非终结符。


3. 最右推导(Rightmost Derivation)

定义:在推导的每一步,都选择当前句型中的最右边的非终结符进行替换。

特点

  • 与自下而上归约(规范归约)是对应关系
  • 在编译原理中,最右推导也称为规范推导

示例:同样文法,输入串id + id * id,最右推导过程:

E ⇒ E + T ⇒ E + T * F ⇒ E + T * id ⇒ E + F * id ⇒ E + id * id ⇒ T + id * id ⇒ F + id * id ⇒ id + id * id

每一步都是替换当前句型中最右边的非终结符。


4. 最左推导 vs 最右推导

对比项最左推导最右推导
替换位置最左边的非终结符最右边的非终结符
对应分析方式自上而下解析(递归下降)自下而上归约(LR分析)
语法树相同相同
推导序列长度相同相同
是否为规范推导否(但通常不称为规范)是(规范推导)

注意:对于同一文法同一输入串,最左推导和最右推导产生的语法树(结构)是一样的,只是构造顺序不同。


5. 经典例题

题目1:给定文法:

S → aS | b

用最左推导产生字符串aaab

S ⇒ aS (最左 S) ⇒ aaS ⇒ aaaS ⇒ aaab (S → b)

答案:S ⇒ aS ⇒ aaS ⇒ aaaS ⇒ aaab


题目2:对于文法S → AB, A → a, B → b,写出最左推导和最右推导生成ab

  • 最左推导:S ⇒ AB ⇒ aB ⇒ ab
  • 最右推导:S ⇒ AB ⇒ Ab ⇒ ab

答案:略


题目3(判断):最左推导和最右推导对于同一个输入串最终得到的语法树一定相同。( )
答案:正确(推导顺序不同,但树的结构相同)


6. 记忆口诀

自上而下开始符,反复展开成句子。
最左替换最左符,最右替换最右符。
语法树形都一样,分析顺序有差异。


7. 给备考同学的一句话

自上而下推导是语法分析的基础概念。软考中常以选择题或简答题形式考查:

  • 区分最左推导和最右推导(看替换的是最左还是最右非终结符)
  • 给定文法,手动进行最左或最右推导
  • 理解推导与语法树的关系

记住:最左推导是“从左到右”展开,最右推导是“从右到左”展开。掌握基本示例,考试时按规则逐步替换即可。


🔔 **本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订

#软考中级 #软件设计师 #语法分析 #自上而下推导 #最左推导 #最右推导

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 12:34:54

AI智能体coze实战课(全套)

我用夸克网盘给你分享了「AI智能体coze实战课(全套)」,点击链接或复制整段内容,打开「夸克APP」即可获取。 /~0f223Z1Dwo~:/ 链接:https://pan.quark.cn/s/1d7182c9725f

作者头像 李华
网站建设 2026/6/13 12:32:31

MC68SZ328引导模式与在线仿真:嵌入式系统底层调试核心技术解析

1. 项目概述:深入MC68SZ328的底层调试世界在嵌入式系统开发的早期阶段,尤其是针对像MC68SZ328这类基于经典68000内核的微控制器,我们常常面临一个“先有鸡还是先有蛋”的困境:系统上电后,Flash存储器是空的&#xff0c…

作者头像 李华
网站建设 2026/6/13 12:32:31

专业的科洛哲门窗公司

近年来,随着建筑节能标准的迭代与人居环境要求的升级,现代建筑门窗早已跨越了基础防护阶段,正向新材料科学与精密装配技术领域演进。在终端市场琳琅满目的选择面前,消费者极易被营销话术裹挟。本文基于实际产品参数与落地交付数据…

作者头像 李华
网站建设 2026/6/13 12:31:24

数字展厅与科技展厅解决方案的行业引领者

随着企业展示和科技展览形式的不断升级,数字展厅和科技展厅逐渐成为品牌传播与创新体验的重要载体。成都妙展科技有限公司(以下简称“妙展科技”)作为国内领先的数字展厅设计与技术解决方案提供商,凭借丰富的项目经验、创新设计理…

作者头像 李华
网站建设 2026/6/13 12:31:12

Rust实战:轻量级IBC侧链验证器开发

发散创新:基于Cosmos IBC的轻量级侧链验证器实战(Rust Tendermint) 侧链(Sidechain)不是新概念,但真正可落地、可验证、可互操作的侧链架构,正在从理论走向生产级部署。本文不谈抽象模型&#…

作者头像 李华
网站建设 2026/6/13 12:30:50

2026年重庆市中考语文答案真题试卷解析下载

下载链接一:(百度网盘) 链接: https://pan.baidu.com/s/1pHO8HmNP3D-jGtqdJ1ExlQ?pwdcfui 提取码: cfui 下载资料二:(夸克网盘) 链接:https://pan.quark.cn/s/75af9722f742 一、语文知识及…

作者头像 李华